今天不唠嗑了; 直奔主题哈 ;

前言


浏览器缓存可以说是浏览器提高性能的一个简单高效的方式吧 ; 不仅提高了网页加载的速度,提升用户的体验; 由于缓存文件可以重复的使用,还可以减少带宽,减少网络和服务器的压力;

对于一个数据请求可以简单为三个阶段:

  1. 浏览器发起请求,
  2. 服务器处理并返回,
  3. 浏览器接受并响应;

    缓存主要是在前俩个阶段来处理!

    对应的尼: 就是一个强缓存和一个协商缓存了;

那什么是强缓存 ,什么又是协商缓存尼 ?
强缓存:主要通过, cache-control和expires 来决定的。告诉浏览器遇到该类请求,直接走缓存。
协商缓存:通过: last-modified,etag ,来表示。当向服务器请求数据的时候,服务会拿时间和etag 来对比下。 如果发现文件没有改变,则返回304 告诉浏览器走本地缓存。 否则正常返回

cache-control 字段
在请求是cache-control 可选的字段有:
image.png

expires字段 ;
设置过期时间:如: 3d

last-modified字段
服务端在返回资源时 ,会在该资源最后的更改时间通过last-modified返回给客户端。客户端在下次请求资源的时候会带上这个时间,这个时候服务端会检查这个时间跟服务端修改的时间是否一致,如果一致则返回 304. 如果不一致则返回200

etag字段
光通过 last-modified 来判断还是有缺陷的,比如最后的时间该了, 但是内容没有改 。这个时候我们就可以通过使用etag 来判断
服务器通过算法对内容进行计算, 取得一串值, 之后通过etag返回给客户端。
下次客户端请求是同样带上etag 值, 给服务验证 。相同的话返回304, 否则返回200.


小龙虾
1 声望0 粉丝