我已经在 google 上搜索过 505 是“不支持 HTTP 版本”,但仍然无法弄清楚我的问题。
我有一个带有 Tomcat 的 Web 应用程序,服务器端带有自签名证书来启用 HTTPS,无需验证客户端。客户端将验证服务器证书。
我分析了wireshark数据包,看来SSL握手是正确的。
但是当我检查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-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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)