【问题标题】:What happens if i do not set an expiration for cache如果我没有为缓存设置过期时间会发生什么
【发布时间】:2017-05-21 12:35:54
【问题描述】:

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

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

到目前为止,我看到的所有文章都在谈论如何设置过期时间,但没有解释如果我不设置过期时间会发生什么。

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

【问题讨论】:

    标签: apache2 browser-cache


    【解决方案1】:

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

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

    4.2.2。计算启发式新鲜度

    由于源服务器并不总是提供明确的过期时间, 当明确时间时,缓存可以分配启发式过期时间 未指定,采用使用其他头字段的算法 值(例如 Last-Modified 时间)来估计一个合理的 到期时间。本规范不提供具体 算法,但确实对其结果施加了最坏情况的约束。

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

    【讨论】:

      猜你喜欢
      • 2019-09-27
      • 2021-04-02
      • 2013-03-29
      • 2011-08-06
      • 2017-04-16
      • 2016-10-31
      • 2012-06-06
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多