Upload File: multipart/form-data Usage
· 11 min read
multipart/form-data
v.s. application/x-www-form-urlencoded
multipart/form-data
和 application/x-www-form-urlencoded
是两种常用的 HTTP 表单数据编码方式,它们在 Web 应用程序中用于提交表单数据到服务器。尽管它们的目的相似,但它们在实现和使用上有一些关键的差异。
相同点
- 表单数据传输:它们都用于通过 HTTP POST 请求传输表单数据到服务器。
- 浏览器支持:现代 Web 浏览器都支持这两种编码类型,并能够自动处理表单数据的编码和解码。
- 数据类型:它们可以传输文本字段,如文本输入、选择框、复选框等。
差异点
-
二进制数据支持:
multipart/form-data
:支持文件和二进制数据的传输。它使用特殊的分隔符来分隔各个表单字段,并且每个字段都有自己的内容类型(MIME type)。application/x-www-form-urlencoded
:不支持文件和二进制数据的传输。所有数据都被编码为键值对,并且对于非 ASCII 字符使用百分比编码(URL 编码)。
-
数据结构:
multipart/form-data
:数据以多部分(multipart)的形式发送,每个部分可以包含不同类型的数据,如文本和文件。application/x-www-form-urlencoded
:数据以单一的 URL 编码字符串的形式发送,所有的数据都编码在 URL 的查询参数中。
-
请求体大小:
multipart/form-data
:由于支持文件和二进制数据,请求体的大小通常较大。application/x-www-form-urlencoded
:请求体通常较小,因为它只包含文本数据。
-
请求头:
multipart/form-data
:请求头中包含Content-Type