场景:为网站里的静态资源设置强缓存,在浏览器访问时发现静态资源的请求响应头都带有 Cache-Control: max-age=300
(符合预期), 但是部分请求依旧向服务器获取数据而不是走缓存(不符合预期)。
同样都设置了响应头 Cache-Control: max-age=300
,在这时间段内服务器静态资源文件没有变更,尝试访问发现其中部分请求走向 memory cache
,而部分走向 服务器请求。同样是 js,其请求的响应头字段一致。为什么会有这种差异?
服务器使用的是自签证证书,是否与证书不安全有关呢? https://bugs.chromium.org/p/c...
chrome 确实在 https 证书不安全的情况下出于安全机制不会做强缓存。所以问题中的强缓存都没有生效,至于 memory cache 是浏览器自身的优化行为与服务器设置无关。