Tomcat:当HTTP多部分请求被中断时会发生什么?

3
根据我对此问题的理解,当Tomcat服务器接收到HTTP Multipart请求时,仅在所有部分的传输完成后才会调用Servlet。
如果传输在中途被中断会发生什么?(例如,如果客户端上传1GB文件时网络连接中断)这种情况下何时调用Servlet?
具体而言,我可以在我的Servlet中看到一些未正确关闭的java.io.InputStream(可能是由于传输中断),但我希望在调用Servlet之前服务器会拒绝不完整的Multipart。如何解释这些未正确关闭的文件? HTTP协议有一些控制机制来防止不完整的请求。(我正在使用Apache Commons FileUploadorg.apache.commons.fileupload.FileItem
我的问题可能不特定于Java / Tomcat。

服务器的读取超时将会触发并关闭连接。 - user207421
1个回答

0

尽管可能存在大量的漏洞,但在所有这些年里,Tomcat 不太可能忘记关闭 Multipart 流,但这也不是不可能的。但我猜测这个问题出现在你的应用程序代码的其他地方。

一般来说,如果客户端未能正确上传多部分流,则这是协议级别的错误,与您的应用程序无关,因此服务器会处理它。这与有人调用 Web 地址但只输入了前半部分类似。这全部由服务器处理,因为此时唯一的答案是终止连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接