Common Methods
Each method allows the client to specify a particular type of action to be taken by the server. Method names are always in upper case letters. There are three methods that are commonly used in HTTP.
GETThe GET method requests that server retrieve the resource specified by the URL on the HTTP request line and send it in a response back to the client. This is the most basic type of request and the one that accounts for the majority of HTTP traffic. When you enter a conventional URL or click on a link to a document or other file, you are usually prompting your Web browser to send a GET request.
The handling of a GET request depends on a number of factors. If the URL is correct and the server can find the resource, it will of course send back the appropriate response to the client. As mentioned above, the exact resource returned depends on the nature of the object requested. If the request cannot be processed properly, an error message may result. Caching also comes into play, as a proxy server or even the client itself might satisfy the request before it gets to the server.
It’s important to remember that the meaning of a GET request may change if certain headers, such as If-Modified-Since or If-Match are used—these and other similar headers tell the server to only send the resource if certain conditions are met. A request of this sort is sometimes called a conditional GET. Similarly, the Range header may be used by the client to request that the server send it only part of a resource; this is usually used for large files. When this header is included, the request may be called a partial GET.
HEADThis is identical to the GET method, but tells the server to not send the actual body of the message. Thus, the response will contain all of the headers that would have accompanied a reply to the equivalent GET message, including entity headers describing the entity that the server would have sent had the method been GET. This method is often used by the client to check the existence, status or size of a file before deciding whether or not it wants the server to send the whole thing.
HEAD requests are processed in the same way as GET requests, except that only the headers are returned, not the actual resource.
POSTThis method allows the client to send an entity containing arbitrary data to the server for processing. It is commonly used to enable a client to submit information such as an interactive HTML form to a program on the server, which then takes action based on that input and sends a response. This capability is now used for all sorts of online programs. The URL in the request specifies the name of the program on the server that is to accept the data.
Contrast this with the PUT method below
Other, Less-Common Methods
The other methods defined by the HTTP standard are not used as often, but I will describe them briefly, as you may still encounter them from time to time.
OPTIONSAllows the client to request that the server send it information about available communication options. A URI of a resource may be specified to request information relevant to accessing that resource, or an asterisk (“*”) may be used to indicate that the query is about the server itself. The response includes headers that give the client more details about how the server may be accessed.
PUTRequests that the server store the entity enclosed in the body of the request at the URL specified in the request line. The difference between a PUT and a POST is that in a PUT, the URI identifies the entity in the request, while in a POST, the URI identifies a program intended to process the entity in the request. Thus a PUT would be used to allow a file to be copied to a server, in the exact complement to how a GET requests that a file be copied to the client. A POST is used for interactive programs, as explained above.
Now, would you like people to be able to store files on your server in the same way that they request them? Neither would I. This is one primary reason why PUT is not often used. It has valid uses, such as uploading content to a Web site, and must be used with authentication in this case. However, generally speaking, storing files on a site is more often accomplished using other means, like FTP.
DELETERequests that the specified resource be deleted. This has the same issues as PUT and is not often used for similar reasons.
TRACEAllows a client to receive back a copy of the request that it itself sent to the server, for diagnostic purposes.