HTTP POST 方法 发送数据给服务器. 请求主体的类型由 Content-Type 首部指定.
PUT 和POST方法的区别是,PUT方法是幂等的:连续调用一次或者多次的效果相同(无副作用)。连续调用同一个POST可能会带来额外的影响,比如多次提交订单。
一个 POST 请求通常是通过 HTML 表单发送, 并返回服务器的修改结果. 在这种情况下, content type 是通过在 元素中设置正确的 enctype 属性, 或是在 和 元素中设置 formenctype 属性来选择的:
application/x-www-form-urlencoded: 数据被编码成以 ‘&’ 分隔的键-值对, 同时以 ‘=’ 分隔键和值. 非字母或数字的字符会被 percent-encoding: 这也就是为什么这种类型不支持二进制数据(应使用 multipart/form-data 代替).
multipart/form-data
text/plain
当 POST 请求是通过除 HTML 表单之外的方式发送时, 例如使用 XMLHttpRequest, 那么请求主体可以是任何类型.按HTTP 1.1规范中描述,POST为了以统一的方法来涵盖以下功能:
请求是否有主体 | 是 |
成功的响应是否有主体 | 是 |
安全 | 否 |
幂等 | 是 |
HTML 表单是否支持 | 是 |
可缓存 | Only if freshness information is included |