- HTTP ETag
An ETag (entity tag) is an HTTP response header returned by an HTTP/1.1 compliant
web server used to determine change in content at a given URL. When a new HTTP response contains the same ETag as an older HTTP response, the contents are determined to be the same without further downloading. The header is useful for intermediary devices that performcaching , as well as clientweb browsers that cache results. One method of generating the ETag is based on the last modified time of the file and the size of the file.In certain situations, ETags may not improve the performance of a web application. For instance, some ETag generation schemes incorporate the file's
inode on the system. The file's inode is unique only to the file on one specific machine. If a site has multiple servers that serve files (i.e.load balancing ), a user may request for the same file and get a response from different machines. If the inode is used to generate the ETag, it will be different causing the file to be re-downloaded.References
* [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 ETag in HTTP/1.1 specification]
* [http://httpd.apache.org/docs/2.2/mod/core.html#fileetag Apache HTTP Server Documentation - FileETag Directive]
* [http://devel.squid-cache.org/old_projects.html#etag Old SQUID Development projects - ETag support] (completed in 2001)
* [http://www.iwaw.net/04/Clausen.pdf Concerning Etags and Datestamps] by Lars R. Clausen (2004)
* [http://trac.lighttpd.net/trac/wiki/Docs%3AConfigurationOptions#LighttpdCoreOptions ETag in Lighttpd]See also
*
List of HTTP headers (includes example of 'ETag'/'If-None-Match'-headers)
Wikimedia Foundation. 2010.