Look up common HTTP headers

Find a request or response header with your browser’s Find command. Compare the listed purpose and example value when reading or composing HTTP messages.

Runs locally in your browser
HTTP request headers
Header Meaning Example
AcceptMedia types the client can process in the response. Accept: text/plain, text/html
Accept-CharsetCharacter encodings the client accepts. It is obsolete in modern HTTP. Accept-Charset: utf-8
Accept-EncodingContent codings the client can decode, such as gzip or br. Accept-Encoding: gzip, br
Accept-LanguagePreferred response languages, optionally weighted with q values. Accept-Language: en, zh
AuthorizationCredentials used to authenticate the request to the origin server. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-ControlRequest cache directives, such as no-cache or max-age. Cache-Control: no-cache
ConnectionControls hop-by-hop connection options. It must not be forwarded by proxies. Connection: close
CookieCookies previously stored for the target origin. Cookie: sessionId=abc123
Content-LengthSize of the request body in bytes. Content-Length: 348
Content-TypeMedia type and optional character encoding of the request body. Content-Type: application/x-www-form-urlencoded
DateDate and time when the request message was generated; rarely sent by browsers. Date: Tue, 15 Nov 2016 08:12:31 GMT
ExpectExpectations the server must meet, most commonly 100-continue. Expect: 100-continue
FromOptional contact address for the human user controlling the client. Rarely used. From: user@example.com
HostTarget host and optional port. Required in HTTP/1.1 requests. Host: example.com
If-MatchMake the request conditional on the current ETag matching one of the supplied values. If-Match: "33a64df5"
If-Modified-SinceReturn the representation only if it changed after the supplied date. If-Modified-Since: Sat, 29 Oct 2016 19:43:31 GMT
If-None-MatchMake the request conditional on the current ETag not matching a supplied value. If-None-Match: "33a64df5"
If-RangeSend a range only when the validator still matches; otherwise send the complete representation. If-Range: "33a64df5"
If-Unmodified-SinceApply the request only if the resource has not changed since the supplied date. If-Unmodified-Since: Sat, 29 Oct 2016 19:43:31 GMT
Max-ForwardsLimits how many proxies may forward a TRACE or OPTIONS request. Max-Forwards: 10
PragmaLegacy HTTP/1.0 cache-control field, commonly used as Pragma: no-cache. Pragma: no-cache
Proxy-AuthorizationCredentials used to authenticate the request to a proxy. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
RangeRequests one or more byte ranges from the selected representation. Range: bytes=500-999
RefererURL of the page that initiated the request. The historical field name is misspelled by specification. Referer: https://example.com/page
TETransfer codings the client accepts, plus optional support for trailers. TE: trailers
UpgradeProtocols the client invites the server to switch to on the current connection. Upgrade: h2c
User-AgentIdentifies the client software making the request. User-Agent: Mozilla/5.0 (X11; Linux x86_64)
ViaLists intermediaries that forwarded the request. Via: 1.1 example.com (nginx)
WarningObsolete field for additional cache warnings; removed from current HTTP specifications. Warning: 199 example.test "Miscellaneous warning"
HTTP response headers
Header Meaning Example
Accept-RangesRange units supported by the server, commonly bytes. Accept-Ranges: bytes
AgeSeconds the response has spent in a cache since it was generated or revalidated. Age: 12
AllowRequest methods supported by the target resource. Allow: GET, HEAD
Cache-ControlResponse caching directives, such as max-age, no-cache, private, or no-store. Cache-Control: no-cache
Content-EncodingContent coding applied to the response body, such as gzip or br. Content-Encoding: gzip
Content-LanguageNatural language or languages of the response representation. Content-Language: en, zh
Content-LengthSize of the response body in bytes. Content-Length: 348
Content-LocationURL for the specific representation contained in the response. Content-Location: /index.html
Content-MD5Obsolete MD5 digest field for the message content. Use Digest or Content-Digest where supported. Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-RangeByte range carried by a partial response and the complete representation size. Content-Range: bytes 21010-47021/47022
Content-TypeMedia type and optional character encoding of the response body. Content-Type: text/html; charset=utf-8
DateDate and time when the origin server generated the response. Date: Tue, 15 Nov 2016 08:12:31 GMT
ETagOpaque validator identifying the selected representation version. ETag: "33a64df5"
ExpiresDate and time after which a cached response is considered stale. Expires: Thu, 01 Dec 2016 16:00:00 GMT
Last-ModifiedDate and time when the origin believes the resource was last changed. Last-Modified: Tue, 15 Nov 2016 12:45:26 GMT
LocationURL used for redirects or to identify a newly created resource. Location: https://example.com/new-page
PragmaLegacy HTTP/1.0 cache field. Cache-Control is preferred in modern responses. Pragma: no-cache
Proxy-AuthenticateAuthentication scheme and parameters required by a proxy. Proxy-Authenticate: Basic realm="example"
RefreshNon-standard refresh instruction supported by some browsers. Prefer an HTTP redirect where appropriate. Refresh: 5; url=https://example.com/
Retry-AfterWhen the client should retry, expressed as a date or a delay in seconds. Retry-After: 120
ServerInformation about the origin server software. Detailed version disclosure can increase fingerprinting risk. Server: Apache/2.4 (Unix)
Set-CookieCreates or updates a cookie in the user agent. Set-Cookie: sessionId=abc123; Max-Age=3600; HttpOnly
TrailerNames fields that may appear in the trailer section of a chunked message. Trailer: Max-Forwards
Transfer-EncodingHop-by-hop transfer coding used to frame the message, commonly chunked in HTTP/1.1. Transfer-Encoding: chunked
VaryRequest fields a cache must consider when selecting a stored response. Vary: Accept-Encoding
ViaLists intermediaries that forwarded the response. Via: 1.1 example.com (nginx)
WarningObsolete field for additional cache warnings; removed from current HTTP specifications. Warning: 199 example.test "Miscellaneous warning"
WWW-AuthenticateAuthentication scheme and challenge parameters required by the origin server. WWW-Authenticate: Basic realm="example"

How to read the request and response tables

This page is a static reference: two tables list the fields a client can send (29 request headers) and the fields a server can return (28 response headers), each with a short meaning and one example line.

The header name and the example are protocol text and stay identical in every language; only the meaning column is translated. Nothing is uploaded and no script asks for input - the tables are part of the HTML.

  1. Press Ctrl+F (Cmd+F on macOS) and type a field name to jump to it; the page has no search box.
  2. Read the name in the Header column - that is the spelling used on the wire. Field names are case-insensitive, but the conventional capitalisation shown here is what other tools and server logs usually print.
  3. Read the Meaning column for what the field does and its status: five entries (Accept-Charset, Pragma, Warning, Content-MD5, Refresh) carry an obsolete, legacy or non-standard note and name the replacement where one exists.
  4. Compare the Example column for the shape of a real header line, then replace the reserved values - example.com, example.test and the dummy credentials - with your own.
  5. Switch to the sibling tabs above the table (User-Agent, Content-Type, request methods, status codes, ASCII, HTML escapes) when you need a different reference.

What the columns mean and where the reference stops

How the two tables are split

Request headers are fields a browser, an API client or a proxy can send; response headers are fields a server returns. Seven fields - Cache-Control, Content-Length, Content-Type, Date, Pragma, Via and Warning - appear in both tables because they can travel in either direction, and each row describes that direction.

Response-only entries such as Accept-Ranges, Age, ETag, Location and Retry-After are kept in the second table so a field never appears on the wrong side. Rows follow the order of the original reference, which is roughly alphabetical.

What the examples and columns do not promise

Examples are illustrative, not defaults: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== is the base64 form of Aladdin:open sesame, and Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== decodes to Check Integrity! - useful for recognising a field, wrong for production.

A description also records when a field changed: Content-MD5 is superseded by Digest or Content-Digest, Warning was removed from current HTTP specifications, and Refresh is a non-standard convenience that an HTTP redirect replaces. The table describes the field; it does not check the headers you already have.

What this page does not do

There is no input field, no run button and no request to a URL: the page cannot test the headers of a live site. For that, use the HTTP request tool or a command-line client such as curl -I.

Nothing is sent to VoriTools while you read, and the page has no filter UI - Ctrl+F is text-only, so it cannot group fields by category (for example all caching headers) or by status.

Recent tools: