HTTP methods or HTTP verbs

HTTP defines a set of request methods to indicate the desired action to be performed for a given resource. Although they can also be nouns, these request methods are sometimes referred as HTTP verbs. Each of them implements a different semantic, but some common features are shared by a group of them: e.g. a request method can be safe, idempotent, or cacheable.


GET

The GET method requests a representation of the specified resource. Requests using GET should only retrieve data.

HEAD

The HEAD method asks for a response identical to that of a GET request, but without the response body.

POST

The POST method is used to submit an entity to the specified resource, often causing a change in state or side effects on the server

PUT

The PUT method replaces all current representations of the target resource with the request payload.


DELETE

The DELETE method deletes the specified resource.

CONNECT

The CONNECT method establishes a tunnel to the server identified by the target resource.

OPTIONS

The OPTIONS method is used to describe the communication options for the target resource.

TRACE

The TRACE method performs a message loop-back test along the path to the target resource.

PATCH

The PATCH method is used to apply partial modifications to a resource.


Brief explanation of commonly used HTTP verbs.

GET:

Request has bodyNo
Successful response has bodyYes
SafeYes
IdempotentYes
CacheableYes
Allowed in HTML formsYes

Syntax

GET http://www.example.com/customers/12345GET http://www.example.com/customers/12345/ordersGET http://www.example.com/buckets/sample

HEAD:

Request has bodyNo
Successful response has bodyNo
SafeYes
IdempotentYes
CacheableYes
Allowed in HTML formsNo

Syntax

HEAD http://www.example.com/customers/12345HEAD http://www.example.com/customers/12345/ordersHEAD http://www.example.com/buckets/sample

POST:


Request has bodyYes
Successful response has bodyYes
SafeNo
IdempotentNo
CacheableOnly if freshness information is included
Allowed in HTML formsYes

Syntax

POST http://www.example.com/customersPOST http://www.example.com/customers/12345/orders

PUT:

Request has bodyYes
Successful response has bodyNo
SafeNo
IdempotentYes
CacheableNo
Allowed in HTML formsNo

Syntax

PUT http://www.example.com/customers/12345PUT http://www.example.com/customers/12345/orders/98765PUT http://www.example.com/buckets/secret_stuff

DELETE:

Request has bodyMay
Successful response has bodyMay
SafeNo
IdempotentYes
CacheableNo
Allowed in HTML formsNo

Syntax

DELETE http://www.example.com/customers/12345DELETE http://www.example.com/customers/12345/ordersDELETE http://www.example.com/bucket/sample

CONNECT:

Request has bodyNo
Successful response has bodyYes
SafeNo
IdempotentNo
CacheableNo
Allowed in HTML formsNo

Syntax

CONNECT www.example.com:443 HTTP/1.1

OPTIONS:

Request has bodyNo
Successful response has bodyYes
SafeYes
IdempotentYes
CacheableNo
Allowed in HTML formsNo

Syntax

OPTIONS /index.html HTTP/1.1OPTIONS * HTTP/1.1

TRACE:

Request has bodyNo
Successful response has bodyNo
SafeNo
IdempotentYes
CacheableNo
Allowed in HTML formsNo

Syntax

TRACE /index.html

PATCH

Request has bodyYes
Successful response has bodyNo
SafeNo
IdempotentNo
CacheableNo
Allowed in HTML formsNo

Syntax

PATCH /file.txt HTTP/1.1