多部分/表单数据
注意。有关文件上传的更多信息,请咨询RFC2388,包括向后兼容性问题、“multipart/form-data”与其他内容类型之间的关系、性能问题等。
有关表单安全问题的信息,请参阅附录。
内容类型“application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。
内容类型“multipart/form-data”遵循RFC2045 中概述的所有多部分 MIME 数据流的规则。 “multipart/form-data”的定义可在 [IANA] 注册表中找到。
“multipart/form-data”消息包含一系列部分,每个部分代表一个成功的控件。部件按照相应控件出现在文档流中的相同顺序发送到处理代理。部分边界不应出现在任何数据中;如何做到这一点超出了本规范的范围。
与所有多部分 MIME 类型一样,每个部分都有一个可选的“Content-Type”标头,默认为“text/plain”。用户代理应提供“Content-Type”标头,并附带“charset”参数。
application/x-www-form-urlencoded
这是默认的内容类型。使用此内容类型提交的表单必须编码如下:
控件名称和值被转义。空格字符替换为+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by %HH'、一个百分号和两个表示字符的ASCII 码的十六进制数字。换行符表示为“CR LF”对(即,%0D%0A'). The control names/values are listed in the order they appear in the document. The name is separated from the value by =' 和名称/值对由 `&' 分隔。
application/x-www-form-urlencoded 发送到服务器的 HTTP 消息的主体本质上是一个巨大的查询字符串——名称/值对由 & 分隔,名称与值由等号 (=) 分隔.这方面的一个例子是:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
内容类型“application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。