ETag for HTTP and S3
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.