【问题标题】:Does HTTP multipart/form-data provide reliability guarantees?HTTP multipart/form-data 是否提供可靠性保证?
【发布时间】:2021-01-28 07:31:07
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: http http-post multipartform-data form-data reliability


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多