请问没有设置cache-control和expires的情况下,这个请求是如何实现200 from cache的?
这个请求,可以看到response中既没有cache-control也没有expires,应该没有命中强缓存,但是我点击f5刷新后,返回200 from cache。请问这是如何实现的?
设置etag和lastModified不是都应该命中协商缓存 返回304吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
chrome浏览器自带文件内存缓存,你可以使用firefox浏览器看看
如果什么缓存策略都没设置,浏览器会采用一个启发式的算法,通常会取响应头中的 Date 减去 Last-Modified 值的 10% 作为缓存时间。
如果没有
Cache-Contorl
和Expires
的 header,但有Last-Modified
,很多浏览器会这样计算RFC7234
因为Response Header 存在 Date、Last-Modified
浏览器使用LM factor 算法在没有 Cache-Control 以及 Expires 的时候,用来计算应该强制缓存多长时间所以状态码返回还是200 不是 304
属于强缓存 具体标准相关信息如下
https://developer.mozilla.org...
https://datatracker.ietf.org/...