--- title: POST slug: Web/HTTP/Methods/POST translation_of: Web/HTTP/Methods/POST ---
{{HTTPSidebar}}

The HTTP POST method sends data to the server. The type of the body of the request is indicated by the {{HTTPHeader("Content-Type")}} header.

The difference between PUT and {{HTTPMethod("POST")}} is that PUT is idempotent: calling it once or several times successively has the same effect (that is no side effect), where successive identical POST may have additional effects, like passing an order several times.

A POST request is typically sent via an HTML form and results in a change on the server. In this case, the content type is selected by putting the adequate string in the {{htmlattrxref("enctype", "form")}} attribute of the {{HTMLElement("form")}} element or the {{htmlattrxref("formenctype", "input")}} attribute of the {{HTMLElement("input") }} or {{HTMLElement("button")}} elements:

When the POST request is sent via a method other than an HTML form — like via an {{domxref("XMLHttpRequest")}} — the body can take any type. As described in the HTTP 1.1 specification, POST is designed to allow a uniform method to cover the following functions:

Request has body Yes
Successful response has body Yes
{{Glossary("Safe")}} No
{{Glossary("Idempotent")}} No
{{Glossary("Cacheable")}} Only if freshness information is included
Allowed in HTML forms Yes

格式

POST /test

範例

使用 application/x-www-form-urlencoded 內容類型的簡易表單:

POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

field1=value1&field2=value2

使用 multipart/form-data 內容類型的表單:

POST /test HTTP/1.1
Host: foo.example
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
--boundary--

規範

規範 標題
{{RFC("7231", "POST", "4.3.3")}} Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
{{RFC("2046", "Common Syntax", "5.1.1")}} Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types

瀏覽器相容性

{{Compat("http.methods.POST")}}

參見