HTTP POST 方法 发送数据给服务器. 请求主体的类型由 Content-Type 首部指定. 一个 POST 请求通常是通过 HTML 表单发送, 并返回服务器的修改结果. 在这种情况下, content type 是通过在 <form> 元素中设置正确的 enctype 属性, 或是在 <input><button> 元素中设置 formenctype 属性来选择的:

  • application/x-www-form-urlencoded: 数据被编码成以 '&' 分隔的键-值对, 同时以 '=' 分隔键和值. 非字母或数字的字符会被 percent encoded: 这也就是为什么这种类型不支持二进制数据的原因 (应使用 multipart/form-data 代替).
  • multipart/form-data
  • text/plain

当 POST 请求是通过除 HTML 表单之外的方式发送时, 例如使用 XMLHttpRequest, 那么请求主体可以是任何类型.

请求是否有主体
成功的响应是否有主体
Safe
Idempotent
Cacheable Only if freshness information is included
Allowed in HTML forms

语法

POST /index.html

示例

使用默认的 application/x-www-form-urlencoded 做为 content type 的简单表单:

POST / HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13

say=Hi&to=Mom

使用 multipart/form-data 作为 content type 的表单:

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, section 4.3.3: POST Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

浏览器兼容性

No compatibility data found. Please contribute data for "" (depth: 1) to the MDN compatibility data repository.

另见

文档标签和贡献者

标签: 
此页面的贡献者: shellphon, fscholz, cissoid
最后编辑者: shellphon,