Expires指令-修改基VS访问基



据我所知:

ExpiresByType text/html "access plus 30 days"

将在存储内容30天后使浏览器高速缓存请求新鲜内容。

但是:

ExpiresByType text/html "modification plus 30 days"

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

所以我的问题是,为什么不一直使用修改库,因为它似乎更有意义,或者我遗漏了什么

apache mod_expires文档这样说:

效果上的差异是微妙的。如果使用M,则所有缓存中文档的所有当前副本都将同时过期,这对于总是在同一URL中找到的每周通知来说是很好的。如果使用A,则每个客户端的到期日期不同;这对于不经常更改的图像文件来说是很好的,尤其是对于一组引用相同图像的相关文档(即,图像将在相对较短的时间内被重复访问)。

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

例如,如果我有一个页面,/live_shows.html,除了每周一次之外,它永远不会改变,我只会在周初更新它,列出我酒吧里的所有现场表演,那么我会想使用"modification plus 7 days"。因为它每7天就会更新一次,不会多,也不会少。

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

最新更新