并告诉浏览器仅当自上次访问以来发生过修改时才重新加载对象(和/或页面...网站上的所有内容)??? htaccess、httpd.conf... 您是否为我的情况准备了合适的指令?非常感谢
答案1
html5boilerplate.com包括一个注释良好的 .htaccess 文件其中包含许多您应该考虑的标准设置。其中包括用于使内容过期的合理设置(Expires、E-tags 等)。
答案2
注意,Last-Modified
headers 是弱缓存头。目前优先使用Cache-Control
headers。
谷歌有一篇关于此问题的很好的文章。
Expires 和 Cache-Control: max-age。它们指定资源的“新鲜度生命周期”,即浏览器可以使用缓存资源而无需检查 Web 服务器是否有新版本的时间段。它们是无条件应用的“强缓存标头”;也就是说,一旦设置它们并下载资源,浏览器就不会发出任何针对该资源的 GET 请求,直到达到到期日期或最大期限。
Last-Modified 和 ETag。它们指定资源的一些特征,浏览器会检查这些特征以确定文件是否相同。在 Last-Modified 标头中,这始终是一个日期。在 ETag 标头中,这可以是任何唯一标识资源的值(文件版本或内容哈希是典型的)。Last-Modified 是一个“弱”缓存标头,因为浏览器会应用启发式方法来确定是否从缓存中获取项目。(不同浏览器的启发式方法不同。)但是,这些标头允许浏览器在用户明确重新加载页面时发出条件 GET 请求来有效地更新其缓存资源。除非资源在服务器上发生变化,否则条件 GET 不会返回完整响应,因此延迟比完整 GET 低。
我建议根据需要使用Cache-Control
或Expires
标头,因为它们是强缓存标头。有些系统会忽略 Last-Modified 日期。
curl
然后您可以使用类似或的工具http://redbot.org检查标题。