HTTP request methods

GET requests a specified resource. Any additional parameters are appended to the URL.

GET /index.html

HEAD is identical to GET but does away with the response body.

HEAD /index.html

POST requests a specified resource and changes states in the server. Entities are submitted through the body, making the process secure as compared to GET.

POST /test

PUT replaces the target resource with the payload. Unlike POST, it is idempotent, ie. Calling it several times successively has the same effect.

PUT /new.html HTTP/1.1

DELETE removes the specified resource.

DELETE /file.html HTTP/1.1

CONNECT establishes a tunnel to the server.

CONNECT server.example.com:80 HTTP/1.1 Host: server.example.com:80 Proxy-Authorization: basic aGVsbG86d29ybGQ=

OPTIONS describes the communication options.

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

TRACE performs a message loop-back test.

TRACE /index.html

PATCH applies partial modifications to a resource.

PATCH /file.txt HTTP/1.1

Only GET and POST are allowed in HTML forms. The use of other request methods involves engineering custom agents outside standard browsers.

Request has body Successful response has body Safe Idempot- ent Cacheable Allowed in HTML forms
GET No Yes Yes Yes Yes Yes
HEAD No No Yes Yes Yes No
POST Yes Yes No No May Yes
PUT Yes No No Yes No No
DELETE May May No Yes No No
CONNECT No Yes No No No No
OPTIONS No Yes Yes Yes No No
TRACE No No No Yes No No
PATCH Yes Yes No No No No