为什么设置了强缓存,但请求依旧没有走缓存?

场景:为网站里的静态资源设置强缓存,在浏览器访问时发现静态资源的请求响应头都带有 Cache-Control: max-age=300(符合预期), 但是部分请求依旧向服务器获取数据而不是走缓存(不符合预期)。

同样都设置了响应头 Cache-Control: max-age=300,在这时间段内服务器静态资源文件没有变更,尝试访问发现其中部分请求走向 memory cache,而部分走向 服务器请求。同样是 js,其请求的响应头字段一致。为什么会有这种差异?

服务器使用的是自签证证书,是否与证书不安全有关呢? https://bugs.chromium.org/p/c...

阅读 4.6k
2 个回答

chrome 确实在 https 证书不安全的情况下出于安全机制不会做强缓存。所以问题中的强缓存都没有生效,至于 memory cache 是浏览器自身的优化行为与服务器设置无关。

Cache-Control:public, max-age=300

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题