【问题标题】:HTTP "Expires" header does not work in ChromeHTTP“过期”标头在 Chrome 中不起作用
【发布时间】:2012-07-18 13:32:43
【问题描述】:

我的系统是 Windows 7 x64,Chrome 20.0.1132.57 m。

在我的 HTTP 响应标头中,我有:

Cache-Control: public, max-age=1000
Expires: *some date*

在 IE & FF 中,页面缓存在本地,当我尝试通过输入 URL 并按 Enter 再次访问时,没有发送请求并且页面正确显示。但是在 Chrome 中,它总是向服务器发送一个带有以下标头的请求:

Cache-Control: max-age=0

我不希望客户端向我的服务器发送请求,然后回复 304。我想节省往返时间。

【问题讨论】:

    标签: google-chrome http-headers cache-control


    【解决方案1】:

    测试时要小心。我注意到在 Chrome 版本 20 中,如果我按 F5 重新加载页面,然后在网络面板中我会看到新请求。 如果我将光标放在标题栏上,在当前页面 url 之后,然后按回车,我会从缓存中获取资源,而标题被设置为缓存。

    最好只使用最大年龄。 Max age 和 Expires 相同,但在 max age 中您指定持续时间。

    看到这个: http://betterexplained.com/articles/how-to-optimize-your-site-with-http-caching/ 方法三和方法四。

    【讨论】:

    • 恐怕这不是我所看到的。我试图在导航栏中按 Enter,但得到了相同的结果。我认为 chrome 可以猜测服务器的 ip,如果是本地主机,它将始终执行请求...也许 google 想让开发人员高兴...但他们没有:(
    • 即使在这个站点上,当我检查网络请求时,我看到 ga.js 具有以下响应标头:Expires:Tue,2012 年 8 月 14 日 20:37:18 GMT。如果 F5 刷新它会重新加载,如果在导航栏中输入它来自缓存
    • 我想我想通了...如果它是由用户或 JS 发起的主请求,Chrome 将忽略 max-age 并强制发送请求...地狱
    • 谢谢@davidshen84!使用内部链接似乎对我更有效。新标签行为不一致
    【解决方案2】:

    我遇到了类似的问题,我发现如果您使用新的 chrome 选项卡发出请求,它将起作用。

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2017-05-31
      • 2017-07-27
      • 2018-07-24
      相关资源
      最近更新 更多