subscriber. Mismatched ETag detection A buggy website can at times fail to update the ETag after its semantic resource has been updated. , an example of a prominent such site is . As a result, the incorrectly returned response is status 304, and the client fails to retrieve the updated resource. To detect such a buggy website: Cache the response and ETag, assuming there is an ETag and that the response was not aborted. For a subsequent request that would've included the If-None-Match header, do not send this header with perhaps a random 20% probability. With this probability, if the response returns an altered content but the same ETag as what was previously cached, mark the website as buggy and disable ETag caching for it. As a reminder, for a strong ETag, the content comparison can be byte-for-byte, whereas, for a weak ETag, it would check semantic equivalence only. Tracking using ETags ETags can be used to track unique users, as HTTP cookies are increasingly being deleted by privacy-aware users. In July 2011, Ashkan Soltani and a team of researchers at UC Berkeley reported that a number of websites, including Hulu, were using ETags for tracking purposes. Hulu and KISSmetrics have both ceased "respawning" as of 29 July 2011, as KISSmetrics and over 20 of its clients are facing a class-action lawsuit over the use of "undeletable" tracking cookies partially involving the use of ETags. Because ETags are cached by the browser and returned with subsequent requests for the same resource, a tracking server can simply repeat any ETag received from the browser to ensure an assigned ETag persists indefinitely (in a similar way to persistent cookies). Additional caching headers can also enhance the preservation of ETag data. ETags may be flushable by clearing the browser cache (implementations vary). References ETag in HTTP/1.1 specification Concerning Etags and Datestamps by Lars R. Clausen (2004) External links Apache HTTP Server Documentation – FileETag Directive Editing the Web: Detecting the Lost Update Problem Using Unreserved Checkout, W3C Note, 10 May 1999. Live demo of zombie cookie using ETags Old SQUID Development projects – ETag support (completed in 2001) Using ETags to Reduce Bandwidth & Workload with Spring & Hibernate Hypertext Transfer Protocol headers Cache (computing) Internet privacy Proxy servers