码迷,mamicode.com
首页 > Web开发 > 详细

http中的Cache-Control:must-revalidate首部

时间:2020-07-16 21:27:35      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:rev   按钮   control   情况   使用   请求   ida   打开   情况下   

cache-control:must-revalidate 首部会对过期后的缓存进行验证

1.must-revalidate和no-cache的区别

no-cache会强制验证缓存(无论缓存是否过期),而must-revalidate只会验证过期后的缓存。

2.为什么需要must-revalidate

 当初看到这里的时候就产生了这个疑问,一般来说,缓存过期后就不能再使用,必须先进行验证,那么为什么还需要must-revalidate首部。

:在http协议规范中,允许客户端在某些特殊情况下直接使用过期缓存,如校验请求错误时。而must-revalidate首部对过期缓存强制校验,如果遇到校验失败等情况,则返回504错误码。

注:在浏览器中点击back/forward按钮返回上一页时,浏览器会直接使用本地缓存来打开页面,即使缓存已经过期。must-revalidate和no-cache都不能阻止这一行为,只有no-store禁止缓存才能阻止。

所以无缓存一般写成:

resp.setHeader("Cache-Control","no-cache,no-store,must-revalidate");



http中的Cache-Control:must-revalidate首部

标签:rev   按钮   control   情况   使用   请求   ida   打开   情况下   

原文地址:https://www.cnblogs.com/yangmie/p/13323832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!