浏览器缓存

强缓存

强缓存,在缓存有效期内,客户端直接读取本地资源。

强缓存返回的状态码是 200

协商缓存

在使用本地缓存之前,需要先跟服务器做个对比,服务器告知你的资源可用,是最新的,那就可以直接取本地资源,反之,服务器返回最新的资源给客户端,客户端收到后更新本地资源。

状态码

  • 若本地资源是最新的,那么返回 304 (考点!)

  • 若比对后,需要从服务器获取最新资源,那就是正常的 200

指令(Cache-control)

指定指令来实现缓存机制,多个指令间逗号分隔,常见的指令有以下几个

max-age:强缓存的有效时间,单位秒 max-age=30672000

no-cache:使用缓存协商,先与服务器确认返回的响应是否被更改。

no-store:直接禁止游览器缓存数据,每次用户请求该资源,都会向服务器发送一个请求,每次都会下载完整的资源,可用于关闭缓存。

public:表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存,即使是通常不可缓存的内容(例如,该响应没有max-age指令或Expires消息头)。

private:表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。私有缓存可以缓存响应内容。

浏览器缓存存放位置

memory cache:内存中读取

disk cache:硬盘中读取

因为内存浏览器内存有限,所以浏览器会有一套机制,根据文件大小何使用频率存放不同的位置,具体的实现取决于浏览器厂商,不过这微小对用户是无感知的。


浏览器缓存
https://blog.fullsize.cn/2021/04/12/notion/liu-lan-qi-huan-cun/
作者
fullsize
发布于
2021年4月12日
许可协议