常见四种和缓存相关的首部

第一种:Last-Modified/If-Modified-Since

如果在服务器设置一个响应头 Last-Modified:该资源的更新时间,然后浏览器收到这个响应头以后,下次再请求这个资源的时候,会带上请求头 If-Modified-Since:上次从服务器缓存该资源的时间。服务器收到这个请求头以后会将两个时间点进行判断,如果服务器的时间更新,那么返回完整的响应数据,状态码为200,反之则只返回一个状态码为304的响应头域。

有个相对的首部为 If-Unmodified-Since

第二种:ETag/If-None-Match

同理服务器返回给浏览器的响应头 ETag:文件标识符 ,浏览器收到后下次会发送一个请求头 If-None-Match:值为收到的ETag ,服务器会判断两个值是否相等,结果同上。

有个相对的首部为 If-Match

第三种:Expires

Expires:缓存时间 是由服务器设置的响应头,它告诉浏览器到什么时间缓存的副本失效。

第四种:Cache-Control

这个响应头有四个值,分别为:public(可以公开被缓存的文档),private(代理服务器不能缓存),no-cache(可以缓存但不能重用,意思是可以在浏览器“前进”“后退”时使用,真正加载时不可用),no-store(不允许缓存),前两个头可以和max-age以及must-revalidate一起使用。
如Cache-Control: max-age=3600 表示一小时内副本都是新鲜的。
而Cache-Control: must-revalidate 表示严格执行缓存新鲜度检查。

请求头有如下值:
Cache-Control: max-stale 缓存随意提供过期的文件
Cache-Control: max-stale=x(s) 这段时间内,文档不过期
Cache-Control: min-fresh=x(s) 至少时间内,文档必须保持新鲜
Cache-Control: max-age=x(s) 最多缓存的时间
Cache-Control: no-cache 不接受已缓存资源
Cache-Control: no-store 从存储器中删除文档所有痕迹
Cache-Control: only-if-cached 只有当缓存中有副本时,才获取

当我们点击Refresh(刷新)按钮时,浏览器会对请求添加一个Cache-Control的首部,强制进行再验证,或者直接从服务器获取文档,但这个会随浏览器的行为而定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值