SYSK 193: Uncommon HTTP Verbs

Did you know that HTTP defines eight methods (a.k.a. "verbs") indicating the desired action to be performed on the identified resource?  They are:

 

HEAD

Asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content.

GET

Requests a representation of the specified resource. By far the most common method used on the Web today.

POST

Submits data to be processed (e.g. from a HTML form) to the identified resource. The data is included in the body of the request.

PUT

Uploads a representation of the specified resource.  Note:  The main difference between POST and PUT is that with PUT, the URL is not the name of a server application that will handle the client's data. Instead, the URL is the name of the file that will be created by the server to store the received data. If the URL already exists, then it will be overwritten by the server. Please note that the virtual directory referred to in the URL must have WRITE permission set.  For example, PUT /Test/Page.htm (only verb and URL is shown for clarity) creates Page.htm file in the /test virtual directory containing data sent with the request.

DELETE

Deletes the specified resource.

TRACE

Echoes back the received request, so that a client can see what intermediate servers are adding or changing in the request.

OPTIONS

Returns the HTTP methods that the server supports. This can be used to check the functionality of a web server.

CONNECT

For use with a proxy that can change to being an SSL tunnel.

 

HTTP servers are supposed to implement at least the GET and HEAD methods and, whenever possible, also the OPTIONS method.

 

GET and HEAD are considered so-called “safe” methods, while POST, PUT and DELETE are unsafe.  It is recommended not to use links to functionality that results in executing unsafe HTTP methods; instead, one should use buttons to clearly indicate an action other than simple browsing.

 

References: http://en.wikipedia.org/wiki/HTTP, http://support.microsoft.com/kb/184352/