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

时间:2013-10-19 01:25:41

标签: http tomcat

请求:

POST / HTTP/1.0
Content-Type: text/xml; charset=UTF-8
User-Agent: Axis2
Host: localhost:8000
Content-Length: 539

来自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

从tomcat网站上说:

  

如果客户端(通常是浏览器)仅支持HTTP / 1.0,则   连接器将优雅地回退到支持此协议   好。无需特殊配置即可启用此支持。

Tomcat如何优雅地回退到HTTP 1.0?从我的例子中它仍然回复HTTP 1.1。有谁可以向我解释一下?

1 个答案:

答案 0 :(得分:4)

协议版本表示发件人的协议能力。它没有指定响应本身的版本。因此,只要HTTP 1.0客户端可以理解响应,Tomcat就会完全按照它应该做的那样。

全部在RFC2616 ...

编辑:它甚至在Tomcat documentation itself中,就在您引用的部分之后:

  

此连接器支持HTTP / 1.1协议的所有必需功能,如RFC 2616中所述,包括持久连接,流水线操作,期望和分块编码。如果客户端(通常是浏览器)仅支持HTTP / 1.0,则连接器也会优雅地回退到支持此协议。无需特殊配置即可启用此支持。 Connector还支持HTTP / 1.0 keep-alive。

     

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