HTTP multipart/form-data 是否提供可靠性保证?

Does HTTP multipart/form-data provide reliability guarantees?

我有 React 前端和 Flask 后端 Web 应用程序。在此网络应用程序中,我通过 HTTP multipart/form-data 从客户端向服务器上传大型 CSV 文件。为此,我在 <form encType='multipart/form-data'> 元素和 <input type='file'> 中获取文件信息。然后我使用 axios.post 向服务器发出 POST 请求。

在 flask 服务器端,我使用 request.files['file'] 访问文件并使用 file.save 保存文件。这按预期工作。文件传输成功。

我正在考虑在客户端和服务器端计算 MD5 校验和,以确保双方的文件具有相同的 MD5 哈希值。但是,这需要从磁盘中分块读取文件并计算 MD5。 (因为我正在处理大文件,所以不可能将整个文件加载到内存中)。所以,我认为这有点低效。我想知道这个通过'HTTP multipart/form-data'转账是否提供可靠性保证?如果是这样,我可以忽略MD5验证吗?

如果不能保证可靠性,请问有什么好的方法可以确保双方有完全相同的文件副本吗?提前致谢。

HTTP 完整性与底层传输协议一样可靠,无论是 TCP(HTTP/1 和 2)还是 UDP(HTTP/3)。位 可以 失败并仍然产生有效的校验和。这个does happen.

如果您想绝对确保收到的文件与上传者预期的相同,您需要自己添加校验和,例如使用 SHA 或 MD5。