ETag (Entityt Tag) is a HTTP response header that stores an identifier value for a specific version of the body (ie resource).
A etag comparison should determine whether two representations of a resource are the same and is therefore similar to a hash digest.
Used in a conditional request as validator to see if a resource has changed (such as the browser cache is stale and a new resource should be downloaded)
An etag can be misused as fingerprints allowing user tracking
For example:
This identification would persist:
In BNF:
ETag := ['W/'] '"' 'etag'? '"';
ETag := ['W/'] '"' 'etag'? '"';
where:
ETag: "xyzzy"
ETag: W/"xyzzy"
ETag: ""