Tomcat將完全讀取請求標頭,但POST
正文需要被servlet
讀取。Tomcat在servlet未讀取的情況下,將請求正文作爲請求頭保存在活動連接中
我的問題是如果servlet
沒有讀取它而發送響應請求主體會發生什麼?對於大多數情況下的HTTP/1.1
,當連接爲keep alive
時,丟棄或作爲下一個請求的請求標頭。
我認爲這是一個錯誤nginx
正確處理這種情況。但是我沒有在bz.apache.org
中發現任何錯誤報告。
在這種情況下,網絡服務器的假設行爲是什麼?
Tomcat版本:7.0.55,請求正文使用Content-Length
而不是chunked
發送。
背景:
我有兩個POST
要求都有請求體(JSON字符串)使用一個連接(HTTP/1.1
與繼續活着默認)發送,但對於第一次請求的servlet沒有讀取請求體,tomcat
將此請求主體作爲下一個請求標題,客戶端得到HTTP/1.1 505 HTTP Version Not Supported
。在tomcat的訪問日誌中,請求url是請求主體,一個json字符串。
10.128.8.6 - - [29/Jan/2016:09:47:30 +0800] "POST /action1.do HTTP/1.1" 200 57
10.128.8.6 - - [29/Jan/2016:09:47:30 +0800] "[123]POST /action2.do HTTP/1.1" 505 -
它也可能是一個客戶端錯誤 - 請求不會被糾正。客戶是什麼? – ZhongYu
如果您有合法的測試用例,請將其提交給'security @ tomcat.apache.org'。如果它需要nginx,那麼它可能是nginx中的一個bug,但現在它更可能是某種配置錯誤。 –