我注意到有(至少)两种通过API将文件上传到HTTP服务器的方法。
您可以使用multipart/form-data
(这是浏览器在本地执行的用于文件上传HTML输入的操作),但是您也可以POST
在请求正文中使用文件内容(也许具有正确的Content-Type请求标头)。
每种方法的优缺点是什么(总的来说,不是来自浏览器)?
例如,多部分请求(取决于您在编程环境中使用的http或网络库(我在服务器端使用Node.js,在客户端使用Swift))创建和解析起来似乎有些复杂。
协议级别的唯一区别是,multipart/form-data
请求必须遵守RFC 2388,而自定义类型的请求主体可以是任意的。
由此产生的实际含义是multipart/form-data
请求通常更大:尽管从技术上允许客户端使用非7位content-transfer-encoding
,但大多数情况下仍使用base64。MIME头会产生额外的开销,如果上载许多小文件,这些开销可能会成为瓶颈。请注意,multipart/form-data
在现有客户端/库中对文件上传的支持要广泛得多。如果您不确定客户端和中间主机(代理服务器)的功能集,则应始终将其作为备用。尤其要记住,如果您正在为第三方设计API,那么其他开发人员将已经很熟悉multipart/form-data
并且可以使用这些库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句