Html 什么是';第'部分;在多部分请求中?

Html 什么是';第'部分;在多部分请求中?,html,forms,multipartform-data,Html,Forms,Multipartform Data,我喜欢本主题中的问答对: 我觉得缺少的是浏览器/服务器如何看待普通表单post和multipartpost之间的区别。因为作为一个用户,我看不到浏览器对表单提交的反应有什么不同,作为一个想要的web开发人员,我收到的帖子是作为一个整体(例如,一个文件),而不是“部分” 一个好的答案可以解释多部分中的具体部分是什么?正如您在参考问题中提到的,有两种方式可以发送表单的帖子:应用程序/x-www-form-urlcoded或多部分/表单数据 它们都将在post请求的正文中发送。与使用get时不同,它

我喜欢本主题中的问答对:

我觉得缺少的是浏览器/服务器如何看待普通表单post和
multipart
post之间的区别。因为作为一个用户,我看不到浏览器对表单提交的反应有什么不同,作为一个想要的web开发人员,我收到的帖子是作为一个整体(例如,一个文件),而不是“部分”


一个好的答案可以解释多部分中的具体部分是什么?

正如您在参考问题中提到的,有两种方式可以发送表单的
帖子
:应用程序/x-www-form-urlcoded
多部分/表单数据

它们都将在
post
请求的正文中发送。与使用
get
时不同,它是通过url本身传递的

以下是两者的一个示例:

您可以说,
part
get
请求的URL编码形式中参数名称的另一种表示形式

urlencoded:
realname=
部分:
内容配置:表单数据;name=“realname”

不同部分由标题中定义的边界分隔:
内容类型:多部分/表单数据;边界=------------------------------------7cd1d6371ec

编辑 床边编码的区别最重要的是,对于
多部分/表单数据
,客户机可以向键/值对添加附加信息,如值的类型(例如
内容类型:image/jpeg
)或文件名。有了这些信息,服务器就可以对不同类型的值执行某些操作

当您使用
application/x-www-form-urlencoded
时,无法以标准化的方式存储密钥/值对的其他信息


这就是为什么要使用
post
请求提交文件时必须使用
multipart/form data
的原因。这不是因为无法以url格式将文件作为base64编码的值传递,而是因为url编码没有标准的方式告诉服务器它是文件而不是字符串。

所以浏览器以相同的方式发送这两种表单编码?没有发生文件拆分吗?我一直认为这一部分意味着文件被分割并分别发送。两个文件都是在一个请求中发送的。请求可能还可以分块编码。但这仍然是一个要求。但不会发生文件拆分,服务器会将文件分为一部分提供给您。