- GET
-
Retrieves a resource. A query can be used to add extra information to the
GET
request and, as we discussed in our introduction to URLs, these are appended to the URL itself. A database search is a good example of an application of theGET
request: the resource is likely to be a web script, and the query component of the URL is the search conditions. - POST
-
Sends data to a server. Rather than appending data to the URL, the data is sent in the body of the HTTP request.
- HEAD
-
Returns only the header fields in a response, not the resource itself. This can be used for lightweight retrieval, so that the modification date of a resource can be checked before the full resource is retrieved with
GET
. - DELETE
-
Allows a resource identified by the URL to be deleted from a server. This is the counterpart to the
PUT
method and allows an author to remove a resource from the specified URL. Usually not implemented. - PUT
-
Similar to the
POST
method, this method is designed to put a resource onto a server that can be later retrieved with the URL in thePUT
request. Some HTML editors and web servers support thePUT
methods allowing authors to put resources onto a web site at the specified URL. Usually not implemented. - TRACE
-
Produces diagnostic information.
The HTTP standard divides these methods into those that are safe and those that aren't. The safe methods-GET
and HEAD
-don't have any persistent side effects on the server. The unsafe methods-POST
, PUT
, and DELETE
-by their nature are designed to have persistent effects on the server. The standard allows for clients to warn users that a request may be unsafe, and a browser should not resend a request with the POST
method without user confirmation.
The HTTP standard further classifies methods as idempotent when a request can be repeated many times and have the same effect as if the method was called once. The GET
, HEAD
, PUT
, and DELETE
methods are classified as idempotent; the POST
method isn't.