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):语义和内容
浏览器兼容性
FeatureChromeEdgeFirefoxInternet ExplorerOperaSafariBasic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS SafariBasic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
也可以看看
Content-Type
Content-Disposition