我已经一派认为505是“HTTP版本不支持”,但仍无法找出我的问题。 我有一个Tomcat的,服务器端使用自签名证书的Web应用程序启用HTTPS,而不认证客户端。 客户端将验证服务器证书。 我分析Wireshark的数据包,似乎SSL handshark是正确的。 但是,当我检查Tomcat的localhost_access_log,会有客户端请求的505错误,也是服务器端没有收到客户端的请求。 你能好心帮给一些这方面的暗示?
172.25.21.113 - - [24/May/2012:16:28:26 +0800] "GET /updserver/update?action=signature_update&device_type=NGN&service_type=KAV&engine_ver=1.00&sig_ver=4.123&mac=0019CB72736E HTTP/1.1 " 505 -
如果您的请求到Tomcat与HTTP版本后,尾随空白(如你的例子),Tomcat将有505错误回应。 确认在Tomcat 7.0.27。
RFC 2616(HTTP 1.1)表示, HTTP-Version
是由"HTTP/" + digit + "." + digit
"HTTP/" + digit + "." + digit
。 请求行结尾" " + HTTP-Version + CRLF
这意味着没有空格是允许的最后一位数字后。
参考文献:
- HTTP版本: http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.1
- 请求行: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1
显然不是答案的OP,但我遇到了此错误消息,今晚试图调试SOLR服务器。
我的问题是不是HTTP版本之后的额外空间。
我的客户端应用程序被记录不良URL,我愉快地复制和粘贴到Telnet连接到SOLR Tomcat的HTTP端口。 我的日志消息显示URL编码没有20%正确的URL的空间。 我得到了不好的HTTP版本错误,大概是因为它被解释为我的HTTP版本,在URL中的空格后的一切。
感谢http://java.dzone.com/news/solr-tomcat-and-http11-505的提示。