我注意到(至少)有两种方法可以通过 API 将文件上传到 HTTP 服务器。
您可以使用multipart/form-data
(这是浏览器本机对文件上传 HTML 输入所做的操作),但您也可以POST
请求正文中的文件内容(可能具有正确的 Content-Type 请求标头)。
每种方法的优缺点是什么(一般而言,不是通过浏览器)?
例如,多部分请求 – 取决于您在编程环境中使用的 http 或网络库(我在服务器端使用 Node.js,在客户端使用 Swift) – 创建和解析似乎有点复杂。
协议级别上的唯一区别是multipart/form-data
请求必须遵守RFC 2388 https://www.ietf.org/rfc/rfc2388.txt而自定义类型的请求正文可以是任意的。
这的实际意义是multipart/form-data
请求通常更大:虽然技术上允许客户端使用非 7 位content-transfer-encoding
,大多数使用的是base64。 MIME 标头会产生额外的开销,如果上传许多小文件,这些开销可能会成为瓶颈。请注意,支持multipart/form-data
现有客户端/库中的文件上传更为普遍。如果您对客户端和中间主机(代理服务器)的功能集不够确定,您应该始终提供它作为后备。特别要记住,如果您正在为第三方设计一个其他开发人员已经熟悉的 APImultipart/form-data
并有可用的库来处理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)