HTTP Explained Page 3

An HTTP transaction consists of a header followed optionally by an empty line and some data. The header will specify such things as the action required of the s erver, or the type of data being returned, or a status code.

The header lines received from the client, if any, are placed by th e server into the CGI environment variables with the prefix HTTP_ followed by the header name. Any - characters in the header name a re changed to _ characters. The server may exclude any headers which it has already processed, such as Authorization, Content-type, and Content-length.


    The MIME types which the client will accept, as given by HTTP headers . Other protocols may need to get this information from elsewhere. Each item in this list should be separated by commas as per the H TTP spec.

    Format: type/subtype, type/subtype


    The browser the client is using to send th e request. General format: software/version library/version.

The server sends back to the client:
  • A sta tus code that indicates whether the request was successful or not. Typical error codes indicate that the requested file was not foun d, that the request was malformed, or that authentication is required to access the file.

  • The data itself. Since HTTP is li beral about sending documents of any format, it is ideal for transmitting multimedia such as graphics, audio, and video files.

    It also sends back information about the object being returned.


Indicates the media type of the data sent to the recipient or, in the case of the HEAD method, the media type that would have be en sent had the request been a GET. Content-Type: text/html


The date and time at which the message was originated. Date: Tue, 15 Nov 1994 08:12:31 GMT


The date after which the information in the document ceases to be valid. Caching clients, including proxies, must not cache this cop y of the resource beyond the date given, unless its status has been updated by a later check of the origin server. Expires: Th u, 01 Dec 1994 16:00:00 GMT


An Internet e-mail address for the human user who controls the requesting user agent. From: Stars@WDVL.com The request is being performed on behalf of the person given, who accepts r esponsibility for the method performed. Robot agents should include this header so that the person responsible for runn ing the robot can be contacted if problems occur on the receiving end.


U sed with the GET method to make it conditional: if the requested resource has not been modified since the time specifie d in this field, a copy of the resource will not be returned from the server; instead, a 304 (not modified) response will be returne d without any data. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT


Indicates the date and time at which the sender believes the resource was last modified. Useful for clients that eliminate unneces sary transfers by using caching. Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT


The Location response header field defines the exact location of the resource that was identified by the request URI. If the value is a full URL, the server returns a "redirect" to the client to retrieve the specified object directly.
 Location: http://WWW.S
If you want to reference another file on your own server, you should output a partial URL, such as the following:
Location: /Tutorial/HTTP/index.html


Allows the client to s pecify, for the server''s benefit, the address (URI) of the resource from which the request URI was obtained. This allows a server t o generate lists of back-links to resources for interest, logging, optimized caching, etc. It also allows obsolete or mistyped links to be traced for maintenance. Referer: http://WWW.Stars.com/index.html


The Server response header field contains information about the software used by the origin server to handle the request. Server: CERN/3.0 libwww/2.17


Information about the user agent originating the r equest. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations - such as inability to support HTML tables. User-Agent: CERN -LineMode/2.15 libwww/2.17b3

This article was originally published on Aug 7, 1999

Thanks for your registration, follow us on our social networks to keep up-to-date