浏览器缓存机制
浏览器缓存主要有两种机制:过期机制和验证机制
浏览器缓存的实现方式主要有两种:HTTP和ServiceWorker
缓存机制
浏览器缓存规则定义在HTTP协议头部和HTML页面的meta标签中,从新鲜度和校验值两个维度确定浏览器是否可以直接使用缓存中的副本,还是需要去源服务器获取新版本。
过期机制
过期机制:缓存中副本的有效期
缓存中副本的有效期满足条件(二者满足其一即可):
1.含有完整的过期时间控制头信息,并且在有效期内。
2.浏览器已使用过这个缓存的副本,并且会在一个会话中已经检查过新鲜度。
验证机制
服务器在返回资源时,会在控制头信息中携带这个资源的实体标签Etag(Entity Tag),该标签可以用来作为浏览器再次请求过程中的校验标识,若标识不匹配,说明资源已经修改或过期,浏览器需要重新获取资源。
缓存实现方式
HTTP缓存
使用缓存最大的问题是如何保证缓存与实际资源一致的前提下,提高命中率。HTTP支持的缓存策略有两种:强缓存和协商缓存。
强缓存
强缓存是在浏览器加载资源时,先直接在缓存中查找请求结果,若不存在该缓存结果,直接向服务端发起请求
Expires
使用响应头部字段Expires来设置缓存时间,对应一个未来的时间戳。
-
客户端在第一次请