首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有同时使用etag和last-modified-date时,chrome浏览器才会显示200(来自磁盘缓存)

只有同时使用etag和last-modified-date时,chrome浏览器才会显示200(来自磁盘缓存)
EN

Stack Overflow用户
提问于 2020-12-03 11:25:00
回答 2查看 252关注 0票数 0

为什么chrome浏览器只在同时使用etag和last-modified-date时才显示200(从磁盘缓存),而不是在只设置了etag响应头的情况下显示200?注意: etag的生成是正确的。在我的例子中,我需要etag,而不是真正需要最后修改日期

EN

回答 2

Stack Overflow用户

发布于 2021-07-05 21:24:39

TL;DR

  • ,因为当没有缓存控制显式过期时间时,大多数浏览器将分配一个启发式过期时间基于Last-Modified time 1.

  • 可以将Cache-Control: must-revalidate标头添加到缓存控制2的响应中。

1

如果响应具有Last-Modified报头字段,则为

RFC7232),则鼓励缓存使用启发式期满值,该值不超过该时间以来间隔的某个分数。

此分数的典型设置可能为10%。

2

票数 0
EN

Stack Overflow用户

发布于 2021-12-06 11:58:26

TL;DR

新的MDN链接:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#up-to-date_contents_always

对于动态生成的内容,或者是静态的但经常更新的内容,您希望用户总是收到最新的版本。

如果您没有添加Cache-Control头,因为响应不打算被缓存,这可能会导致意外的结果。缓存存储允许启发式地缓存它-所以如果你对缓存有任何要求,你应该总是在Cache-Control头中明确地指出它们。

向响应添加无缓存会导致服务器重新验证,因此您可以每次都提供新的响应-或者,如果客户端已经有新的响应,只需响应304 Not Modified即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65119445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档