开发者社区> 问答> 正文

如何在保留 Last-Modifed 的同时让 Chrome 等浏览器不要"from cache"?

我有个WEB应用,服务器端数据是动态生成的,通过程序在服务器端缓存,用 Last-Modified 来标明更新时间。但是在 url 上不加随机数的时候,Google Chrome 总是 "from cache" 而不向服务器发起请求。只有在浏览器开启 ”isable cache (while DevTools is open)“ 才会正常的每次发起请求,服务器返回 304 它才从 cache 取。

我试着加了 Cache-Control: no-cache, Pragma: no-cache 都不行,他总是在第二次就"from cache",我又需要用 Last-Modifed 来减少一些服务器响应的数据量,有什么办法解决这个问题吗?

问题补充:

如果单独请求这个地址,是正常的,第二次、第三次浏览器发出 If-Modififed-Since,但是当请求是在页面内发出的,比如 <script type="text/javascript" src="xxxxxx"></script> 则他总是在首次后 from cache,除非加上 Expires 让它过期。

展开
收起
落地花开啦 2016-06-15 18:15:11 2350 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
    Cache-Control: no-cache, no-store, max-age=0
    Pragma: no-cache
    Expires: Sat, 26 Jul 1997 05:00:00 GMT

    上面这个是禁止所有缓存的。

    不过根据你的描述我更建议这样写

    Cache-Control: max-age=0, private, must-revalidate
    2019-07-17 19:39:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载