POST method
POST asks the target resource to process enclosed content according to that resource's semantics.
Defined meaning
POST asks the target resource to process the enclosed representation according
to the resource’s own semantics. Common uses include submitting data, creating a
resource through a collection, appending data, and triggering an operation.
POST /messages HTTP/1.1
Host: example.invalid
Content-Type: text/plain
Content-Length: 5
hello
Expected result: /messages defines how hello is processed. Creation can be
reported with 201 Created and Location; another valid application can return a
different status matching its result.
Properties
POST is not safe and is not idempotent by definition. Application-level idempotency keys can deduplicate repeated processing or make an application operation idempotent under a documented private contract. They do not make POST an HTTP safe method or change its registered method properties.
POST responses are cacheable only when they carry explicit freshness information
and a Content-Location value equal to the POST target URI. Such a stored
response can satisfy a later GET or HEAD request, but it cannot satisfy another
POST request. Many caches do not implement this reuse.
Common mistake
Do not use a redirect code with historical method rewriting when the follow-up must preserve POST and its content. Choose the redirect semantics deliberately.