我想问一个关于 multipart/form-data
的问题。在 HTTP 标头中,我发现 Content-Type: multipart/form-data; boundary=???
。
用户可以自由定义 ???
吗?或者它是从 HTML 生成的?我可以定义 ??? = abcdefg
吗?
原文由 Questions 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
2 回答871 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答885 阅读✓ 已解决
2 回答779 阅读
1 回答764 阅读✓ 已解决
2 回答1.1k 阅读
是的。
不 。HTML 与此 无关。参见下文。
是的。
如果你想向网络服务器发送以下数据:
使用
application/x-www-form-urlencoded
会是这样的:如您所见,服务器知道参数由与号分隔
&
。如果参数值需要&
则必须对其进行编码。那么当服务器使用
multipart/form-data
接收到 HTTP 请求时,它如何知道参数值的开始和结束位置呢?使用 _边界_,类似于
&
。例如:
在这种情况下,边界值为
XXX
。您在Content-Type
标头中指定它,以便服务器知道 如何拆分 它接收到的数据。所以你需要:
使用不会出现在发送到服务器的 HTTP 数据中的值。
保持一致并在请求消息中的所有位置使用相同的值。