浏览器缓存
强缓存
强缓存,在缓存有效期内,客户端直接读取本地资源。
强缓存返回的状态码是 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/