2013-10-19 76 views
2

請求:從Tomcat爲什麼tomcat答覆HTTP 1.1使用HTTP 1.0請求回覆?

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

響應:

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。任何人都可以向我解釋?

回答

4

協議版本指示發件人的協議能力。它沒有指定響應本身的版本。所以只要HTTP 1.0客戶端能夠理解這個響應,Tomcat就會完成它應該做的事情。

這一切都在RFC2616 ...

編輯:而且它甚至在Tomcat documentation itself,你引述的部分之後:

此接口支持所有的HTTP/1.1的所需的功能協議,如RFC 2616中所述,包括持久連接,流水線,期望和分塊編碼。如果客戶端(通常是瀏覽器)僅支持HTTP/1.0,則連接器將優雅地回退以支持該協議。無需特殊配置即可啓用此支持。該連接器還支持HTTP/1.0保持活動狀態。

RFC 2616要求HTTP服務器始終以他們聲稱支持的最高HTTP版本開始其響應。因此,此連接器將始終在其響應開始時返回HTTP/1.1。

+0

但發件人已經指出HTTP 1.0,爲什麼響應不是HTTP1.1?如果客戶端只支持HTTP/1.0會怎麼樣? Tomcat如何優雅地解決它?這就是我不明白 – performanceuser

+0

Tomcat _is_發送一個HTTP 1.0兼容的響應。 Tomcat只是告訴客戶「我支持HTTP 1.1」。只要HTTP 1.0客戶端可以讀取來自Tomcat的響應(不管它說的是什麼版本),就沒有問題。 – jmiserez

+0

我已經編輯了相應的Tomcat文檔的答案。我希望這消除所有的疑慮。 – jmiserez