©
This document usesPHP Chinese website manualRelease
POST
将数据发送到服务器。请求主体的类型由Content-Type
标题指示。
PUT和POST
之间的差PUT
和POST
是,PUT
是幂等:调用它一次或多次连续具有相同的效果(也就是没有侧面的效果),在那里连续的相同的POST
可具有额外的效果,如通过顺序数次。
POST
请求经由通常发送 HTML 形式在服务器上的变化和结果。在这种情况下,内容类型是通过将适当的字符串在所选enctype
的属性的元件或所述的
formenctype
属性或
元素:
application/x-www-form-urlencoded
:值被编码在由分离键-值元组'&'
,具有'='
键和值之间。非字母数字字符是百分比编码的:这就是为什么这种类型不适合与二进制数据一起使用的原因(用来multipart/form-data
代替)
multipart/form-data
text/plain
当通过 HTML 表单以外的方法发送POST
请求时 —— 例如通过XMLHttpRequest
- 可以采用任何类型的主体。如 HTTP 1.1规范中所述,POST
旨在允许统一的方法覆盖以下功能:
现有资源的标注
向公告板,新闻组,邮件列表或类似的文章组发布信息;
向数据处理过程提供一组数据,例如提交表单的结果;
通过追加操作扩展数据库。
请求具有正文 |
是 |
---|---|
成功的回应有身体 |
是 |
安全 |
没有 |
幂等 |
没有 |
可缓存 |
仅在包含新鲜度信息的情况下 |
在HTML表单中允许 |
是 |
POST /index.html
使用默认的application/x-www-form-urlencoded
内容类型的简单表单:
POST / HTTP/1.1Host: foo.com Content-Type: application/x-www-form-urlencoded Content-Length: 13say=Hi&to=Mom
使用multipart/form-data
内容类型的表单:
POST /test.html HTTP/1.1 Host: example.org Content-Type: multipart/form-data;boundary="boundary" --boundary Content-Disposition: form-data; name="field1" value1 --boundary Content-Disposition: form-data; name="field2"; filename="example.txt" value2
规范 |
标题 |
---|---|
RFC 7231,第4.3.3节:POST |
超文本传输协议(HTTP / 1.1):语义和内容 |
Feature |
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
---|---|---|---|---|---|---|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
Feature |
Android |
Chrome for Android |
Edge mobile |
Firefox for Android |
IE mobile |
Opera Android |
iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
(Yes) |
Content-Type
Content-Disposition