浏览器有哪几种缓存?各种缓存之间的优先级

在浏览器中,有以下几种常见的缓存:

1、强制缓存 :通过设置 Cache-Control 和 Expires 等响应头实现,可以让浏览器直接从本地缓存中读取资源而不发起请求。
2、协商缓存: 通过设置 Last-Modified 和 ETag 等响应头实现,可以让浏览器发送条件请求,询问服务器是否有更新的资源。如果服务器返回 304 Not Modified 响应,则表示客户端本地缓存仍然有效,可直接使用缓存的资源。
3、Service Worker 缓存: Service Worker 是一种特殊的 JS 脚本,可以拦截网络请求并返回缓存的响应,以实现离线访问和更快的加载速度等功能。
**4、Web Storage 缓存:**包括 localStorage 和 sessionStorage。localStorage 用于存储用户在网站上的永久性数据,而 sessionStorage 则用于存储用户会话过程中的临时数据。

优先级:

1、Service Worker 缓存: 由于其可以完全控制网络请求,因此具有最高的优先级,即使是强制缓存也可以被它所覆盖。
2、强制缓存: 如果存在强制缓存,并且缓存没有过期,则直接使用缓存,不需要向服务器发送请求。
3、协商缓存: 如果强制缓存未命中,但协商缓存可用,则会向服务器发送条件请求,询问资源是否更新。如果服务器返回 304 Not Modified 响应,则直接使用缓存。
**4、Web Storage 缓存:**Web Storage 缓存的优先级最低,只有在网络不可用或者其他缓存都未命中时才会生效。

相关推荐
执子念的飞鱼12 分钟前
浏览器直接预览 Pages、Numbers、Keynote:iWork 格式真正难在哪
前端·javascript
alloc15 分钟前
从延迟聚合到可解释诊断:MetricKit 的原理与工程化实践
前端
颜进强16 分钟前
06 - OpenSpec change 从模糊想法到完整契约:new change / explore / propose 三连
前端·后端·ai编程
Cache技术分享16 分钟前
499. Java 反射 - 获取类型上的注解
前端·后端
用户9210802628617 分钟前
左侧历史对话模块:使用 Conversations 搭建会话入口
前端
用户3452081538817 分钟前
我给 DSH 写了读 10x 数据的插件
javascript
用户693717500138418 分钟前
9531 款 AI 工具流量真相:当 90% 的访问涌向 100 个平台,普通创业者还有机会吗?
前端·后端
莫问ABC23 分钟前
HTML、CSS、JavaScript 前端三件套
前端·css·html
执子念的飞鱼23 分钟前
70MB Excel 浏览器预览失败:定位 XLSX 重复解压与内存峰值
javascript·性能优化
颜进强24 分钟前
07 - OpenSpec change 修正带与照单施工:update 修订 + apply 实现
前端·后端·ai编程