This document lists all the message headers defined in the
HTTP/1.1 protocol, with short descriptions.
In the list,
the name of the header is
a link to its definition in the protocol itself.
Note that some of the headers are also used in Internet E-mail and in Usenet;
see
Quick reference to Internet message headers.
Specifies which
data format tranformations, confusingly called
content (en)codings, such as
compression
mechanisms,
are acceptable for the response and to assign preferences to them.
Lists the set of methods supported
by the resource identified by the Request-URI. The purpose
is to inform the recipient of valid methods
associated with the resource.
Used as a modifier to the media-type, to indicate what additional
data format transformations such as compression have been applied to the entity-body.
Specifies the natural language(s) of the intended audience for the enclosed entity. But according to
RFC 3282,
specifies the language(s) of the entity.
Supplies the resource location for the entity enclosed in the message when that entity is accessible from a location separate from the requested resource's URI.
Specifies the
Internet media type
of the entity-body that is sent or would have been sent if requested.
Often includes a charset parameter specifying the
character encoding.
Used with a method to make it conditional: a client that has previously
obtained entities can verify that one of those entities is current by including a list of their associated
entity tags
in the
If-Match header field.
Used with a method to make it conditional:
if the requested variant has not been modified since the time specified in this field,
the server will not return the entity but information about this fact.
Used with a method to make it conditional: a client that has previously
obtained entities can verify that none of those entities is current by including a list of their associated
entity tags
in the
If-None-Match header field.
Used with a method to make it conditional:
if the requested variant has been modified since the time specified in this field,
the server will not perform the requested operation but information about this fact.
Provides a mechanism with the
TRACE
and OPTIONS
methods to limit the number of proxies or gateways that can forward the request to the next inbound server.
Included as part of a
407
(Proxy Authentication Required) response. The field value consists of a challenge that indicates the authentication scheme and parameters applicable to the proxy for this Request-URI.
Indicates what extension transfer-codings the client
is willing to accept in the response and whether or not it is willing to accept trailer fields in a chunked transfer-coding.
Indicates what (if any) type of transformation has been applied to the message body in order to safely transfer it between the sender and the recipient.
This differs from the
Content-Encoding
in that the transfer-coding is a property of the message, not of the entity.
Used by a client to specify what additional communication protocols it supports and would like to use if the server finds it appropriate to switch protocols.
The server uses the Upgrade header
to indicate which protocol(s) are being switched.
Indicates the set of request-header fields that fully determines, while the response is fresh, whether a
cache
is permitted to use the response to reply to a subsequent request without revalidation.
Used by gateways and proxies to indicate the intermediate protocols and recipients between the user agent and the server on requests, and between the origin server and the client on responses.
Used in 401 (Unauthorized) response messages.
The field value consists of at least one challenge that indicates the authentication scheme(s) and parameters applicable to the Request-URI.
There might be other headers in use as well, but with no authoritative
definition.
You could use e.g.
Tipjar's tester
to see what headers your browser actually sends. It displays
a collection of "environment variables", and those beginning with
HTTP_ derive from HTTP headers,
as per
CGI rules;
e.g.,
HTTP_ACCEPT corresponds to the Accept header.
And you could use e.g.
Delorie's HTTP Viewer to see what headers a Web server actually
sends, in response to a simple request.