An ETag is an opaque identifier assigned by a Web server to a specific version of a resource found at a URL

ETag Generation

The ETag is generated with a checksum algorithm like CRC32 on in case of Amazon S3 the md5 hash algorithm is used.

Usage

When the client retrieves a URL the server can return the resources ETag as a Response Header:

ETag: "686897696a7c876b7e"

The client can cache the resource according to Cache-Control and the Expire headers.

When the caching is expired and the client requests the resource again, it can include the ETag in the Request:

If-None-Match: "686897696a7c876b7e"

When there is no newer version of the resource, the server can answer:

HTTP 304 Not Modified

User Tracking

ETags are used to identify Users who delete their cookies.