ETags的优点与更新URL

时间:2009-12-15 18:14:08

标签: http caching etag

ETags允许浏览器执行条件GET。只有在相关资源被更改的情况下才需要重新下载资源。但是,浏览器仍然必须等待服务器响应其请求。

ETag的替代方法是将令牌引入指向资源的URL:

http://example.com/css/styles.css?token=134124134

http://example.com/css/134124134/styles.css

这两种方法都避免了重新下载未更改的资源。

但是,使用带令牌的URL允许服务器在资源上设置远期到期头。这样可以节省条件GET占用的往返次数 - 如果资源不变,那么指向它的URL将保持不变。

对带有令牌的网址使用ETag有什么好处吗?

3 个答案:

答案 0 :(得分:2)

我看到的只读资源的主要缺点是,如果我们都将这种方法用于所有静态资源,那么客户端缓存将开始填充各种过时的资源。

另外,想想所有会开始持有大量无用文件的中间缓存。

你正在用这种方法与网络作斗争,如果它变得流行,那么就必须改变一些东西,因为它不是一个可扩展的解决方案。

是否存在某种混合方法,您使用一组有限的令牌并将到期时间设置得足够小,以至于旧的缓存资源在重用令牌之前会过期?

Etags也用于读写资源,在这种情况下,我怀疑令牌解决方案不起作用。

答案 1 :(得分:1)

我认为最大的差异/潜在优势是配置;必须在应用程序内配置/设置URL设置(例如,HTML实际上必须包含值)。为整个Web服务器配置了ETag,并且不必修改HTML以利用它们。

此外,当文件指向更改时,ETag将(假设它们已正确配置)更改;向URL添加一个令牌需要一些额外的“东西”来告诉它改变(编辑HTML的人或某些配置设置等)。

答案 2 :(得分:-1)

有一个常量URI吗?