The ETag HTTP header

The ETag header is a HTTP header whereby a HTTP server can indicate the identify of a given entity variant or version. This identity can then be used to validate if it still is current, or in case of Vary to find which one of a known list of variants are valid for the current user/request.

HTTP/1.1 references

3.11 Entity Tags
Description of what an entity-tag is.
14.19 ETag
Syntax of the ETag header
13.3.3 Weak and Strong Validators
How to compare ETag headers
13.3.4 Rules for When to Use Entity Tags and Last-Modified Dates
Rules for When to Use Entity Tags and Last-Modified Dates
13.6 Caching Negotiated Responses
How caches should operate on negotiated content. Please note the last paragraph making a connection to Content-Location which isn't entirely obvious (but still reasonable).
14.24 If-Match
Describes a method of operating on an object IFF it matches a known entity identity. Used for example when updating content using the PUT method, to only perform the update if the current version is the one we expect.
14.26 If-None-Match
Describes a method of retreiving an object only if is is not included in a previously known list of object identities. Used in cache validations and Vary headers matches.
14.27 If-Range
Describes how to use entity tags to protect range retreival from object modification
10.3.5 304 Not Modified
In addition to the obvious description of 304 the last paragraphs also tells what to do if the 304 disagrees with what we have cached

Notes

ETag can be supported by caches in a multitude of different aspects

  1. No support, completely ignoring ETag values
  2. Validation support, using ETag while validating cached entities
  3. Vary support, using If-None-Match to find the proper variant among a set of cached entity variants.

Squid Now! Cache Now! Valid HTML 4.0! SourceForge
$Id: etag-header.html,v 1.3 2006/07/01 15:07:07 hno Exp $