浏览器的几种缓存

1. 缓存相关的字段(response)

expires:缓存过期时间
private:客户端可以缓存
public:客户端和代理服务器都可以缓存
max-age=xxx:缓存的内容将在xxx秒后失效
no-cache:需要使用对比缓存来验证缓存数据
no-store:所有内容都不好缓存,强制缓存和对比缓存都不会触发
last-modified:内容上次被修改的时间
Etag:文件的特殊标识
在这里插入图片描述

2. 缓存的类型

强制缓存的优先级高于协商缓存,顺序是cache-control>expires> ETag > Last-Modified

1)强制缓存
包括expires和cache-control。

  • expires是服务器给的时间,当浏览器时间超过它后会重新发起请求。而浏览器时间可以更改,cache会出现很久不过期或者马上过期的情况
  • cache-control是相对缓存时间开始往后多久到期 不会受当前时间影响
  1. 协商缓存
    包括 last-modified和Etag
  • last-modified会与客户端的if-modify-since字段进行比较,如果相等,返回304,否则返回200
  • etag和if-none-match字段匹配,如果相等,返回304,否则返回200
3. 三级缓存原理
  • 先去内存看,如果有,直接加载
  • 如果内存没有,择取硬盘获取,如果有直接加载
  • 如果硬盘也没有,那么就进行网络请求
  • 加载到的资源缓存到硬盘和内存,下次请求可以快速从内存中获取到

200 from memory cache
不访问服务器,直接读缓存,从内存中读取缓存。此时的数据时缓存到内存中的,当关闭进程后,也就是浏览器关闭以后,数据将不存在。但是这种方式只能缓存派生资源。
200 from disk cache
不访问服务器,直接读缓存,从磁盘中读取缓存,当关闭进程时,数据还是存在。这种方式也只能缓存派生资源
304 Not Modified
访问服务器,发现数据没有更新,服务器返回此状态码。然后从缓存中读取数据。

原文出处链接:https://juejin.im/post/5e0ef37a6fb9a047f51772fc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值