我有一個Spring Boot后端,我剛剛解決了 "ERR_CONNECTION_RESET",當從Angular前端上傳檔案時,通過配置maxSwallowSizeTomcat屬性。我想了解它到底是做什么的。Tomcat的檔案對我來說并不明顯:
請求正文的最大位元組數(不包括傳輸編碼 的最大位元組數(不包括傳輸編碼的開銷),它將被 Tomcat 吞下,用于中止上傳。一個 終止上傳是指Tomcat知道請求體將被 被忽略,但客戶端仍然發送它。如果Tomcat不吞掉 體,客戶端就不可能看到回應。如果不指定 將使用默認的2097152(2兆位元組)。如果數值小于 小于零的值表示不應強制執行任何限制。
https://tomcat.apache.org/tomcat-8.0-doc/config/http.html
我可以得到一些幫助嗎?
uj5u.com熱心網友回復:如果你的Servlet的service()方法退出(正常或例外)沒有消耗整個客戶端的請求體,Tomcat仍然會在重置連接之前接受maxSwallowSize位元組。這是必須的,因為大多數瀏覽器只有在發送了整個請求之后才會讀取服務器的回應(參照這個問題)。
要消耗請求正文,Tomcat仍將接受maxSwallowSize位元組,然后重置連接。
要消耗請求的主體,你需要:
- 如果請求被編碼為
application/x-www-form-urlencoded,你需要呼叫getParameter*方法之一, - 如果請求被編碼為
multipart/form-data,你需要呼叫getPart*方法中的一種, - 在所有其他情況下,你需要讀取整個
InputStream。
未被吸收的請求體通常是由錯誤引起的,包括在決議引數或表單部分的錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319420.html
標籤:
上一篇:在ubuntutomcat上沒有找到com.sun.ws.rs.ext.RuntimeDelegateImpl類。
