HTTP request methods
HTTP defines a set ofrequest methods to indicate the purpose of the request and what is expected if the request is successful.Although they can also be nouns, these request methods are sometimes referred to asHTTP verbs.Each request method has its own semantics, but some characteristics are shared across multiple methods, specifically request methods can besafe,idempotent, orcacheable.
GETThe
GETmethod requests a representation of the specified resource.Requests usingGETshould only retrieve data and should not contain a requestcontent.HEADThe
HEADmethod asks for a response identical to aGETrequest, but without a response body.POSTThe
POSTmethod submits an entity to the specified resource, often causing a change in state or side effects on the server.PUTThe
PUTmethod replaces all current representations of the target resource with the requestcontent.DELETEThe
DELETEmethod deletes the specified resource.CONNECTThe
CONNECTmethod establishes a tunnel to the server identified by the target resource.OPTIONSThe
OPTIONSmethod describes the communication options for the target resource.TRACEThe
TRACEmethod performs a message loop-back test along the path to the target resource.PATCHThe
PATCHmethod applies partial modifications to a resource.
In this article
Safe, idempotent, and cacheable request methods
The following table lists HTTP request methods and their categorization in terms of safety, cacheability, and idempotency.
| Method | Safe | Idempotent | Cacheable |
|---|---|---|---|
GET | Yes | Yes | Yes |
HEAD | Yes | Yes | Yes |
OPTIONS | Yes | Yes | No |
TRACE | Yes | Yes | No |
PUT | No | Yes | No |
DELETE | No | Yes | No |
POST | No | No | Conditional* |
PATCH | No | No | Conditional* |
CONNECT | No | No | No |
*POST andPATCH are cacheable when responses explicitly includefreshness information and a matchingContent-Location header.
Specifications
| Specification |
|---|
| HTTP Semantics> # DELETE> |
| HTTP Semantics> # POST> |
| HTTP Semantics> # PUT> |
| HTTP Semantics> # GET> |
| HTTP Semantics> # CONNECT> |
| HTTP Semantics> # HEAD> |
| HTTP Semantics> # OPTIONS> |