浏览器缓存-强制缓存-协商缓存

缓存是一种提升浏览器性能和客户体验的一种手段。
主要提升了网站的加载速度,减少了服务器请求。
浏览器通过读取response header里面返回的内容决定缓存方式和是否缓存。

强制缓存

  • 特点
    不会发送网络请求,直接从浏览器中读取资源。
  • 缓存方式
    通过expires
    expires是response header里的过期时间,返回的是一个时间戳。通过对比expires和本地时间来决定是否可以缓存。
    通过cache-control属性
    max-age: 60 // 单位是秒规定该缓存持续时间
    -no-cache 不使用本地缓存。使用协商缓存。
    -no-store 不缓存,每次都向服务器发送请求获取最新的资源。
    -public 可以被cdn和中间服务代理商缓存。
    -private 只可以被客户端缓存。
    expries缺陷:由于对比的是本地时间。所以会发生不可预知的错误。

协商缓存

  • 特点
    在使用缓存之前需要向服务器发送网络请求,服务器根据response header的一些信息来判断是否命中协商缓存。(数据有没有更新)如果命中,则返还304状态码。
    缓存方式
    设置cache-control:-no-cache
  • last-modify
    1.response header值里面会携带last-modify。里面是最后一次的修改时间。
    2.再需要请求这个资源的时候会送 if-last-since 里面包含了last-modify的值。
    3.服务器进行判断,是否需要更新当前资源。不需要就返还304。需要就返回最新资源。
    4.浏览器接受到304会直接从本地缓存获取。
  • Etag
    etag根据文件名的hash值进行匹配是否需要发送最新资源。
    last-modify缺陷:last-modify的修改时间是秒级别。所以毫秒级别里进行修改他是检测不到的。而etag是需要生成hash值。(听闻会对服务器造成压力:需要计算)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值