如果我没有为缓存设置过期会发生什么

时间:2017-05-21 12:35:55

标签: apache2 browser-cache

我正在google pagespeed见解测试我的页面,它回来了: 在静态资源的HTTP标头中设置到期日期或最长期限,指示浏览器从本地磁盘而不是通过网络加载以前下载的资源

我的假设是,如果我没有设置到期日,我的文件永远不会过期。这是不正确的?

到目前为止,我所看到的所有文章都讨论了如何设置过期,但是如果我没有设置过,那么它们就不会解释会发生什么。

有谁真的知道会发生什么?浏览器是否每次都重新请求文件?

1 个答案:

答案 0 :(得分:0)

浏览器将使用某些启发式方法猜测可缓存的资源新鲜度。

RFC 7234 - Hypertext Transfer Protocol (HTTP/1.1): Caching的相关摘录:

  

<强> 4.2.2。计算启发式新鲜度

     

由于源服务器并不总是提供明确的到期时间,      缓存可以在显式时间分配启发式到期时间      未指定,使用使用其他标头字段的算法      估计合理的值(例如最后修改时间)      到期时间。本规范没有具体说明      算法,但确实对结果施加了最坏情况限制。

有关更多信息,请查看Mark Nottingham撰写的The State of Browser Caching, Revisited文章。