Expires指令 - 修改基本VS Access base

时间:2012-09-27 16:31:48

标签: apache .htaccess browser-cache mod-expires

据我所知:

ExpiresByType text/html "access plus 30 days"
在存储内容模具30天后,

将使浏览器缓存请求新鲜内容。

但是:

ExpiresByType text/html "modification plus 30 days"

浏览器缓存将在LAST MODIFIED HEADER的帮助下知道在修改30天之前不要求新鲜内容。

所以我的问题是,为什么不一直使用修改基础,因为它似乎更有意义,或者是否有我缺少的东西?

1 个答案:

答案 0 :(得分:8)

apache mod_expires docs这样说:

  

效果的差异是微妙的。如果使用 M ,则所有缓存中文档的所有当前副本将同时到期,这对于始终在同一URL中发现的每周通知等内容非常有用。如果使用 A ,则每个客户的到期日期会有所不同;这对于不经常变化的图像文件是有益的,特别是对于所有引用相同图像的一组相关文档(即,图像将在相对短的时间内重复访问)。

M 修改加 A 访问加。因此,看起来这是一个关于如何缓存以在所有浏览器中工作的问题。您是否希望资源在所有浏览器中同时使其缓存 ?或者您是否希望您的资源在所有浏览器中错开缓存 ?特别是,它归结为此处缓存的资源类型。

如果我有一个页面,例如/live_shows.html,除了每周一次之外不会改变,我只会在本周初更新它以列出我将拥有的所有现场表演我的酒吧,然后我想要使用"modification plus 7 days"。因为它会每7天更新一次,不会更新,也不会更新。

如果我有一个显示在/live_shows.html页面上的图像目录,但很少会因为它们像图标,横幅和项目符号而被更改,我会一直使用它们。然后我想要制作它们"access plus 30 days",因为如果有任何变化,获取这些更改的更新并不是那么重要。