2016-08-24 252 views
0

使用tomcat8.5 ...我沒有像使用tomcat8.0那樣得到完整的響應。Tomcat 8.5:HTTP響應中缺少標頭

這兩個版本的HTTP 請求或響應有區別嗎?


PUT tomcat8.0響應:

HTTP/1.1 200 OK 
Server: Apache-Coyote/1.1 
Transfer-Encoding: chunked 
Date: Tue, 23 Aug 2016 08:59:48 GMT 

PUT tomcat8.5響應:

HTTP/1.1 200         
Transfer-Encoding: chunked 
Date: Tue, 23 Aug 2016 09:05:20 GMT 

我使用C++ SOKET方法來發送該請求。

回答

0

好吧,很明顯,實際響應的內容有所不同。但是,對於HTTP 1.1而言,Server:頭部沒有任何意義,它在協議中沒有特殊意義。

從技術上講,兩個響應是相同的,並且帶有關於響應的相同信息:這是一個分塊編碼響應。故事結局。

如果您正在編寫使用HTTP的客戶端,那麼您應該熟悉RFC 2616,這可以解釋這一點。

+0

感謝您的回答。我試圖找出爲什麼這種差異在迴應中。對於tomcat8.0:'GET/HTTP/1.1「404 994'和tomcat8.5:'GET/HTTP/1.1」404 992'在tomcat日誌中。這是否能成爲發生事件的線索? – cristian

+0

當我癱瘓客戶端時,我對兩個版本都有相同的結果:'PUT/printing/pc HTTP/1.1「200 14' – cristian

+1

服務器可以自由地返回任何符合HTTP 1.1的響應。沒關係,因爲Server:頭是無意義的,它沒有,也不應該在乎,它在協議中沒有指定。如果頭或不存在的客戶端有問題,應該修復遵守RFC 2616。 –

0

Tomcat 8.5放棄了對原因短語的支持。見migration guide

HTTP連接器改變

HTTP原因短語已經被默認刪除,但用 sendReasonPhrase配置屬性可以被重新啓用。

您可以在Connector configuration重新啓用它,但它會在Tomcat中9

消失

<Connector ... sendReasonPhrase="true"> ... </Connector>