我已经在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 -
如果您在HTTP版本之后以空白结尾向Tomcat发出请求(如您的示例),则Tomcat将响应505错误。在Tomcat 7.0.27上确认。
RFC 2616(HTTP 1.1)表示HTTP-Version由组成"HTTP/" + digit + "." + digit。请求行以结束," " + HTTP-Version + CRLF这表示最后一位数字后不允许有空格。
HTTP-Version
"HTTP/" + digit + "." + digit
" " + HTTP-Version + CRLF
参考文献: