【问题标题】:Tomcat: what happens when a HTTP Multipart request gets interrupted?Tomcat:当 HTTP 多部分请求被中断时会发生什么?
【发布时间】:2023-03-25 08:08:02
【问题描述】:

根据我对this的理解,当Tomcat服务器收到一个HTTP Multipart请求时,只有在所有部分的传输完成后才会调用servlet。

如果传输中途中断会怎样? (例如,如果客户端的网络连接在上传 1Gb 文件时断开?)这种情况下何时调用 servlet?

具体来说,我可以在我的 servlet 中看到一些未正确关闭的java.io.InputStream(可能来自中断的传输),但我希望服务器会在调用 servlet 之前拒绝 Multipart 不完整?如何解释这些未正确关闭的文件? HTTP 协议有一些控制机制来防止不完整的请求。 (我使用来自Apache Commons FileUploadorg.apache.commons.fileupload.FileItem

我的问题可能并非针对 Java/Tomcat。

【问题讨论】:

  • 服务器的读取超时将启动并关闭连接。

标签: java tomcat servlets file-upload


【解决方案1】:

这些年来,Tomcat 不太可能忘记关闭 Multipart 流,尽管考虑到大量的错误,这并非不可能。但我的猜测是,这在您的应用程序代码中的其他地方。

一般来说,如果客户端未能正确上传多部分流,这是协议级别的错误,与您的应用程序无关,因此服务器会处理它。这与有人拨打网址但只输入前半部分大致相同。这一切都由服务器处理,因为答案只能是在该点终止连接。

【讨论】:

    猜你喜欢
    • 2012-06-24
    • 2013-02-03
    • 2019-11-02
    • 2017-03-24
    • 1970-01-01
    • 2013-06-02
    • 2011-09-03
    • 2015-04-21
    • 2010-12-11
    相关资源
    最近更新 更多