文件上传API:主体中的多部分/表单数据与原始内容?

julien_c

我注意到有(至少)两种通过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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于上传文件的Java HTTP客户端(多部分/表单数据)

在多部分/表单数据上传的各个部分上设置内容长度标头

AngularJS如何上传多部分表单数据和文件?

使用HTTPWebrequest上传文件(多部分/表单数据)

仅在Swift 4.2中上传包含多部分表单数据的图像

AJAX在angular.js 1.3.0中上传多部分/表单数据的“意外令牌”

PATCH / PUT不接受多部分/表单数据文件上传吗?

使用WSO2 API管理器上传多部分表单数据文件?

如何在多部分/表单数据请求中获取文件的实际文件大小

无法在iOS中使用NSURLSession多部分表单数据上传文件

在Flask中上传文件,无需多部分/表单数据

尝试通过执行PUT请求的API上传模型时文件丢失-多部分/表单数据请求-Laravel / PHP

在文件上传中使用curl来处理多部分/表单数据

如何在Swift4中通过具有多个参数的多部分表单数据上传图像或文件

使用JSON asp.net核心api上传多部分/表单数据图像

如何使用antd上传发送多部分/表单数据

快速文件上传java rest api mimepull关闭具有多部分表单数据的问题

Angular 7将文件内容作为多部分/表单数据发布

使用Python通过POST多部分表单数据上传文件

使用多部分/表单数据将图像从移动应用上传到API

将文件从AWS Lambda(Python)中的多部分/表单数据上传到S3

测试ASP.NET Web API多部分表单数据文件上传

通过图形API上传照片-多部分/表单数据

使用多部分/表单数据和文件上传时,Spring Webflow-IllegalStateException

使用多部分表单数据上传文件时,我缺少什么?

多部分文件上传表单数据附件为空

使用多部分/表单数据上传图像

使用 PowerShell 上传多部分/表单数据文件

使用 UploadFile 进行直接文件上传,无需多部分/表单数据请求