【发布时间】:2021-01-04 07:21:31
【问题描述】:
我正在一个服务器上工作,该服务器接受来自用户的 URL 并下载它(并对它执行其他操作,例如将其上传回来,但这在这里无关紧要)。它应该接受的最大文件大小为 4 GB,这就是用户提供的 URL 必须存在 Content-Length 的原因。
但是,如果恶意服务器提供 2 GB 的 Content-Length 并最终传输 6 GB 会怎样?是否有适当的机制来阻止这种情况?我正在使用 Rust 库 reqwest,但其他 HTTP 客户端的答案也很棒。
【问题讨论】:
-
我不是这方面的专家,我不确定,但我记得我有同样的问题,答案是客户忽略了其余的数据。由于 HTTP 通过 TCP 传输,因此客户端可能会停止接收数据。顺便说一句,目前,连接可能保持活动状态并且下一个 HTTP 响应随后出现。所以,我不确定在这些情况下到底会发生什么。
标签: http rust content-length reqwest