浏览器对eTag的支持

26

我正在努力让我的网站支持eTag/If-None-Match浏览器缓存,但我不确定哪些浏览器支持/不支持它。有人能给我指一下清单吗?我无法想象它是普遍的,但我没有找到任何支持这种说法的东西。

谢谢,
迈克

1个回答

22
如果在HTTP 1.1(1999年6月)中指定了If-None-Match: 根据维基百科:截至1996年3月,Arena、Netscape 2.0、Netscape Navigator Gold 2.01、Mosaic 2.7、Lynx 2.5和Internet Explorer 3.0均支持预标准HTTP/1.1。新浏览器的最终用户采用速度很快。在1996年3月,一家网络托管公司报告称,在互联网上使用的浏览器中,超过40%符合HTTP 1.1标准。同一家网络托管公司报告称,到1996年6月,访问其服务器的所有浏览器中,65%都符合HTTP/1.1标准。RFC 2068中定义的HTTP/1.1标准于1997年1月正式发布。HTTP/1.1标准的改进和更新在1999年6月的RFC 2616下发布。
根据我的经验,所有流行浏览器,包括IE5.5+、Safari、Chrome、Opera和Firefox,都支持ETag/If-None-Match头。但是,还有一些其他头文件会阻止这些浏览器尊重ETag...因此,如果您发现它对您不起作用,我会仔细检查客户端请求资源时发送回客户端的其他头文件。
您询问问题是否有特定原因?也许如果您有特定实例遇到问题,我们可以查看其他头文件?
但是这些头文件已经存在很长时间了,并且它们是广泛用于网络的关键缓存机制。

这不是我目前遇到的问题。我的计划是以每个用户为基础生成动态资产文件,并将它们缓存在本地,以便每次用户需要文件时无需重新生成。因此,看起来我可以实现ETag/If-No-Match解决方案,对于所有主流浏览器都可以正常工作,对吗? - Swift
2
是的。我有一些较大的JavaScript文件,它们偶尔会更改(约1MB),我使用ETag来节省带宽 - 我从未遇到过任何不支持它的浏览器。 - Steve
@Pacerier,我非常怀疑这是真的。如果您有支持您说法的HTTP请求/响应日志,请发布一个新答案并在此答案上留下评论,以便我可以查看它,因为我非常有兴趣了解这种行为。 - Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接