HTTP ETag:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(机器人:将英文日期转换为ISO格式)
(机器人:清理不当的来源、移除无用的模板参数)
 
第2行: 第2行:
'''ETag'''或'''实体标签'''('''{{lang|en|entity tag}}''')是[[万维网]]协议[[超文本传输协议|HTTP]]的一部分。
'''ETag'''或'''实体标签'''('''{{lang|en|entity tag}}''')是[[万维网]]协议[[超文本传输协议|HTTP]]的一部分。


ETag是HTTP协议提供的若干机制中的一种Web[[缓存]]验证机制,并且允许客户端进行缓存协商。这就使得缓存变得更加高效,而且节省带宽。如果资源的内容没有发生改变,Web服务器就不需要发送一个完整的响应。ETag也可用于[[乐观并发控制]]<ref>{{cite web | url = http://www.w3.org/1999/04/Editing/ | title = Editing the Web - Detecting the Lost Update Problem Using Unreserved Checkout | work = W3C Note | date = 1999-05-10 | accessdate = 2014-05-22 | | | }}</ref>,作为一种防止资源同步更新而相互覆盖的方法。
ETag是HTTP协议提供的若干机制中的一种Web[[缓存]]验证机制,并且允许客户端进行缓存协商。这就使得缓存变得更加高效,而且节省带宽。如果资源的内容没有发生改变,Web服务器就不需要发送一个完整的响应。ETag也可用于[[乐观并发控制]]<ref>{{cite web | url = http://www.w3.org/1999/04/Editing/ | title = Editing the Web - Detecting the Lost Update Problem Using Unreserved Checkout | work = W3C Note | date = 1999-05-10 | accessdate = 2014-05-22 }}</ref>,作为一种防止资源同步更新而相互覆盖的方法。


ETag是一个不透明的标识符,由Web服务器根据[[统一资源定位符|URL]]上的资源的特定版本而指定。如果那个URL上的资源内容改变,一个新的不一样的ETag就会被分配。用这种方法使用ETag即类似于[[指纹 (计算机)|指纹]],并且他们能够被快速地被比较,以确定两个版本的资源是否相同。ETag的比较只对同一个URL有意义——不同URL上的资源的ETag值可能相同也可能不同,从他们的ETag的比较中无从推断。
ETag是一个不透明的标识符,由Web服务器根据[[统一资源定位符|URL]]上的资源的特定版本而指定。如果那个URL上的资源内容改变,一个新的不一样的ETag就会被分配。用这种方法使用ETag即类似于[[指纹 (计算机)|指纹]],并且他们能够被快速地被比较,以确定两个版本的资源是否相同。ETag的比较只对同一个URL有意义——不同URL上的资源的ETag值可能相同也可能不同,从他们的ETag的比较中无从推断。
第43行: 第43行:
== 用ETag来跟踪用户 ==
== 用ETag来跟踪用户 ==


由于[[HTTP cookie]]被越来越多的注重隐私保护的用户删除,可以将ETag用来追踪唯一用户<ref>{{cite web | url = http://www.arctic.org/~dean/tracking-without-cookies.html | title = tracking without cookies | date = 2003-02-17 | accessdate = 2014-05-22 | | | }}</ref>。2011年7月,[[Ashkan Soltani]]和[[加利福尼亚大学伯克利分校|加州大学伯克利分校]]的一组研究者,包括[[Hulu.com]]将ETag用于追踪用途。<ref>{{cite web | url = http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1898390 | title = Flash Cookies and Privacy II: Now with HTML5 and ETag Respawning | date = 2011-07-29 | accessdate = 2014-05-22 | | | }}</ref>Hulu和KISSmetrics在2011年7月29日停止了这样的追踪,<ref>{{cite web | url = http://ashkansoltani.org/docs/respawn_redux.html | title = Respawn Redux | date = 2011-08-11 | accessdate = 2014-05-22 | | | }}</ref>而KISSmetrics和超过20位其用户面临关于“无法删除”的cookie的集体诉讼,其中包括了ETag的使用。<ref>{{Cite web |url=http://www.extremetech.com/internet/91966-aol-spotify-gigaom-etsy-kissmetrics-sued-over-undeletable-tracking-cookies |title=AOL, Spotify, GigaOm, Etsy, KISSmetrics sued over undeletable tracking cookies |accessdate=2014-05-22 |||}}</ref>
由于[[HTTP cookie]]被越来越多的注重隐私保护的用户删除,可以将ETag用来追踪唯一用户<ref>{{cite web | url = http://www.arctic.org/~dean/tracking-without-cookies.html | title = tracking without cookies | date = 2003-02-17 | accessdate = 2014-05-22 }}</ref>。2011年7月,[[Ashkan Soltani]]和[[加利福尼亚大学伯克利分校|加州大学伯克利分校]]的一组研究者,包括[[Hulu.com]]将ETag用于追踪用途。<ref>{{cite web | url = http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1898390 | title = Flash Cookies and Privacy II: Now with HTML5 and ETag Respawning | date = 2011-07-29 | accessdate = 2014-05-22 }}</ref>Hulu和KISSmetrics在2011年7月29日停止了这样的追踪,<ref>{{cite web | url = http://ashkansoltani.org/docs/respawn_redux.html | title = Respawn Redux | date = 2011-08-11 | accessdate = 2014-05-22 }}</ref>而KISSmetrics和超过20位其用户面临关于“无法删除”的cookie的集体诉讼,其中包括了ETag的使用。<ref>{{Cite web |url=http://www.extremetech.com/internet/91966-aol-spotify-gigaom-etsy-kissmetrics-sued-over-undeletable-tracking-cookies |title=AOL, Spotify, GigaOm, Etsy, KISSmetrics sued over undeletable tracking cookies |accessdate=2014-05-22 }}</ref>


因为ETag由浏览器保存,并且在访问统一资源时随之后请求返回,一个追踪服务器可以轻松地重复设定任何从浏览器收到的ETag,以保持ETag不变,类似于持久cookie。额外的缓存头部也能增强ETag的持久性。<ref>{{Cite web |url=https://github.com/lucb1e/cookielesscookies |title=Cookieless cookies (using ETags as cookies) |accessdate=2014-05-22 |||}}</ref>
因为ETag由浏览器保存,并且在访问统一资源时随之后请求返回,一个追踪服务器可以轻松地重复设定任何从浏览器收到的ETag,以保持ETag不变,类似于持久cookie。额外的缓存头部也能增强ETag的持久性。<ref>{{Cite web |url=https://github.com/lucb1e/cookielesscookies |title=Cookieless cookies (using ETags as cookies) |accessdate=2014-05-22 }}</ref>


根据实现,ETag可以通过清除浏览器缓存清除。
根据实现,ETag可以通过清除浏览器缓存清除。