In publishing a site,
we’ve been focusing on only one method of the HTTP
protocol, GET
. Apache’s basic
handling of GET
is more than adequate for sites
that just need to publish information from files, but HTTP (and
Apache) can support a much wider range of options. Developers who
want to create interactive sites will have to write some programs to
supply the basic logic. However, many useful tasks are simple to
create, and Apache is quite capable of supporting much more complex
applications, including applications that connect to databases or
other information sources.
Every HTTP request must specify a method. This tells the server how to handle the incoming data. For a complete account, see the HTTP 1.1 specification (http://www.w3.org/Protocols/rfc2616/rfc2616.html). Briefly, however, the methods are as follows:
GET
Returns the data asked for. To save network traffic, a
“conditional GET
" only generates a return if the condition
is satisfied. For instance, a page that alters frequently may be
transmitted. The client asks for it again: if it
hasn’t changed since last time, the conditional
GET
generates a response telling the client to get
it from its local cache. (GET
may also include
extra path information, as well as a query string with information an
application needs to process.)
HEAD
Returns the headers that a GET
would have
included, but without data. They can be used to test the freshness of
the client’s cache without the bandwidth expense of
retrieving the whole document.
POST
Tells the server to accept the data and do something with it, using
the resource identified by the URL. (Often this will be the ACTION
field from an HTML form, but in principle at least, it could be
generated other ways.) For instance, when you buy a book across the
Web, you fill in a form with the book’s title, your
credit card number, and so on. Your browser will then
POST
this data to the server.
PUT
Tells the server to store the data.
DELETE
Tells the server to delete the data.
TRACE
Tells the server to return a diagnostic trace of the actions it takes.
CONNECT
Used to ask a proxy to make a connection to another host and simply relay the content, rather than attempting to parse or cache it. This is often used to make SSL connections through a proxy.
Note that servers do not have to implement all these methods. See RFC
2068 for more detail. The most commonly used methods are
GET
and POST
, which handle the
bulk of interactions with users.