浏览器缓存

162 阅读2分钟

缓存的优点

1.缓解服务器压力,减少请求数
2.提升性能,减少响应时间
3.减少带宽消耗

缓存类型

1.数据库缓存  2.cdn缓存  3.代理服务器缓存 4.浏览器缓存

image.png

缓存位置

优先级为 Service Worker(浏览器缓存)、Memory Cache(内存缓存)、Disk Cache(硬盘缓存)、Push Cach(推送缓存)

何时使用缓存

image.png

强缓存

1. 如何设置强缓存

1.Cache-control(Cache-Control优先级高)
  public:资源客户端和服务器都可以缓存
  privite:资源只有客户端可以缓存。
  no-cache:客户端缓存资源,但是是否缓存需要经过协商缓存来验证
  no-store:不使用缓存。
  max-age:缓存有效期
2.pragma
  no-cache:客户端缓存资源,但是是否缓存需要经过协商缓存来验证
3.expreis

2. 缓存位置

CPU、内存、硬盘

CPU、内存、硬盘都是计算机的主要组成部分。 CPU:中央处理单元(CntralPocessingUit)的缩写,也叫处理器,是计算机的运算核心和控制核心。电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用。 硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。 内存:负责硬盘等硬件上的数据与CPU之间数据交换处理。特点是体积小,速度快,有电可存,无电清空,即电脑在开机状态时内存中可存储数据,关机后将自动清空其中的所有数据。

协商缓存

由两组header字段控制:EtagIf-None-MatchLast-Modifiedif-modified-since

Etag If-None-Match: 客户端第一次请求资源时,响应头会加上last-modifiedLast-Modify是一个时间标识该资源的最后修改时间,再次请求时,请求头加上if-modified-sinceif-modified-since为返回的Last-Modify,服务器根据资源的最后修改时间判断是否命中缓存

Etag If-None-Match: 原理和Etag If-None-Match一样,只是Eatg是一个hash值