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/


 

Comments (1)

  1. Adam says:

    In the description of PUT, the word "file" ought to be replaced with "resource", and "If the URL already exists…" with "If a resource at the URL already exists…".

    Also, "virtual directory" and "WRITE permission" seem to be pretty IIS-specific, and may not be applicable to all HTTP servers. Similarly, on non-IIS HTTP servers, the "path" component may be case sensitive, meaning that "/Test/Page.htm" might refer to a different resource than the one in "/test".

Skip to main content