为什么tomcat用HTTP 1.0请求回复HTTP 1.1?

per*_*ser 2 tomcat http

请求:

POST / HTTP/1.0
Content-Type: text/xml; charset=UTF-8
User-Agent: Axis2
Host: localhost:8000
Content-Length: 539
Run Code Online (Sandbox Code Playgroud)

tomcat的回应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Date: Sat, 19 Oct 2013 00:28:57 GMT
Connection: close
Run Code Online (Sandbox Code Playgroud)

从tomcat网站上说:

如果客户端(通常是浏览器)仅支持HTTP / 1.0,则连接器也会正常地回退到支持该协议。启用此支持不需要特殊配置。

Tomcat如何优雅地回退到HTTP 1.0?从我的示例中,它仍然回复HTTP 1.1。谁能向我解释?

jmi*_*rez 5

协议版本指示发送方的协议功能。它没有指定响应本身的版本。因此,只要HTTP 1.0客户端可以理解响应,Tomcat就会完全按照其应有的方式运行。

全部在RFC2616中 ...

编辑:并且甚至在Tomcat文档本身中,在引用的部分之后:

此连接器支持RFC 2616中描述的HTTP / 1.1协议的所有必需功能,包括持久连接,流水线,期望和分块编码。如果客户端(通常是浏览器)仅支持HTTP / 1.0,则连接器也会适当地退回支持该协议。启用此支持不需要特殊配置。连接器还支持HTTP / 1.0保持活动状态。

RFC 2616要求HTTP服务器始终以其声称支持的最高HTTP版本开始其响应。因此,此连接器将始终在响应开始时返回HTTP / 1.1。