浏览器缓存协议

与缓存相关的四个字段,为了好记忆,我们分为强缓存,协商缓存

强缓存:expires,cache-control
协商缓存:etag/if-none-match,last-modified/if-modified-since

expires

  1. expires有点过时的http头,替代头是cache-control(权重也没有cache-control:max-age高)
  2. expires表示一个绝对的过期时间,当资源被本地缓存后,再次请求这个资源,会与系统时间比对,如果系统时间没有超出,浏览器会直接返回缓存的资源,状态码200
  3. 缺点:会参照系统时间,系统时间可以人为设置,所以并不是很有效
    在这里插入图片描述

cache-control

响应头最核心部分,可配置属性很多

属性名作用
public资源能被浏览器和中间代理缓存
private资源只能被浏览器缓存,默认值
no-cache配合协商缓存一起使用,请求时服务器会返回etag,再次请求会把etag的值作为请求头if-none-match的值,对比是否一样,一样返回304使用本地资源,不一样返回200表示服务端资源改变
no-store不使用缓存
max-age设置缓存时长,单位是秒,下次请求如果在时间内,直接使用内存缓存,状态码200
s-maxage设置缓存时长,针对代理服务器,对浏览器没有效果

etag/if-none-match

etag:资源唯一标识
当再次请求服务器 ,请求头中会加入if-none-match,if-none-match的值等于etag的值

场景:
当响应头cache-control:max-age过期,且之前缓存服务器给了etag 字段,我们刷新请求,请求头会携带if-none-match(etag的值),如果最新版本etag与if-none-match的值一样,返回304,浏览器直接使用本地缓存。不一样状态码200,浏览器缓存最新资源。

last-modified/if-modified-since

标识资源最后更改时间,优先级比etag低,用法与etag/if-none-match相同

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值