浏览器缓存

Posted 诗酒明月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器缓存相关的知识,希望对你有一定的参考价值。

定义缓存是由header头决定:一共4种、Cache-Control 、Expires 、Last-modified 、ETag

一、Cache-Control的可能取值:

1、max-age(单位s):指定设置缓存的最大的有效时间,定义的是时间长短。当浏览器向服务器发送请求后,在max-age这段时间里浏览器就不会再向服务器发送请求了。

2、s-maxage(单位s):只用于共享缓存,(如CDN缓冲),用法和max-age。

3、publice:指定响应会被缓存,并且存在多用户共享。

4、private:响应只作为私有的缓存,不能在用户间共享。

5、no-cache:指定不缓存响应,表明资源不进行缓存。no-cache 和private可以不能保证不缓存,还要加上过期时间。

6、no-store:绝对禁止缓存。

7、must-revalidate:指定如果页面是过期的,则去服务器进行获取。

 

二、Expires:

缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。Expires = max-age + 请求时间

 

三、Last-modified:

服务器文件的最后修改时间,需要和cache-control共同使用,是检查服务器端资源是否更新的一种方式。

 

四、ETag:

根据试题内容生成一段hash字符串,标识资源的状态,由服务端产生。

 

在前端只要使用Cache-Control 和 Last-modified。

 

以上是关于浏览器缓存的主要内容,如果未能解决你的问题,请参考以下文章

浏览器缓存原理简述

HTTP缓存

Vue 部署上线清除浏览器缓存

为啥在浏览器缓存处理缓存时使用服务工作者进行缓存?

浏览器缓存:强缓存和协商缓存

HTTP学习彻底弄懂 Http 缓存机制 - 浏览器缓存机制详解