← 返回目录

第 3 卷

第 3 / 10 卷日期:

Code block

1Cache-Control: no-cache, max-age=60# 60秒强缓存,超时后协商 2ETag: "xxx哈希值"

  • 效果:短期内重复请求直接读缓存,超时后验证更新,兼顾性能和时效性。

✅ 四、CDN缓存协同优化(生产必备)

  1. CDN节点配置与源站一致的 Cache-Control 规则,让CDN缓存静态资源,用户从就近CDN节点

获取,降低源站压力,提升加载速度。

  1. CDN开启缓存刷新功能,静态资源更新后,手动刷新CDN缓存(配合哈希命名,基本无需手动刷

新)。

  1. CDN设置 Vary: Accept-Encoding,缓存不同编码(gzip/brotli)的资源,避免返回错误编

码的资源。

✅ 五、避坑要点(缓存策略常见问题)

  1. ❌ 不要给index.html设置长时效强缓存,否则资源更新后无法生效。
  2. ❌ 不要给动态接口设置强缓存,否则返回过期数据(如用户登录状态)。
  3. ✅ 优先使用 Cache-Control: max-age,放弃 Expires,避免客户端时间篡改问题。
  4. ✅ 静态资源必加 ETag,兜底协商缓存,解决 max-age 过期后的资源验证。
  5. ✅ 移动端/小程序推荐 immutable 指令,避免刷新页面发起不必要的协商请求。

✅ 六、最终缓存策略总结(生产环境标配)

资源类型缓存策略核心目标
JS/CSS/图片/字体强缓存1年 + immutable +极致缓存,哈希更新兜底

ETag + 哈希命名

index.html协商缓存(no-cache)+ 保证资源引用最新,复用缓存 ETag

实时动态接口no-store + no-cache数据绝对最新

追加交付物提议

我可以帮你整理浏览器缓存的面试高频考点速记版(纯核心结论,适合考前快速背诵),需要吗?

6. 浏览器缓存如何影响HTTP请求?不同的缓存策略会如何改变请求响

应?

浏览器缓存的核心作用是拦截或优化HTTP请求:通过本地存储已获取的资源,减少无效网络请求、缩短请求响应链路,不同缓存策略会直接改变请求的发起与否、响应内容及状态码,最终影响请求效率

和资源时效性。

一、浏览器缓存对HTTP请求的核心影响

• 拦截请求:强缓存生效时,浏览器直接复用本地缓存,不向服务器发起任何HTTP请求,彻底跳过

网络传输环节。

• 优化请求:协商缓存时,浏览器发起“条件请求”(仅携带资源标识等少量头部信息),服务器仅

验证资源状态,无需返回完整资源体,大幅减少带宽消耗。

• 改变响应逻辑:缓存存在时,服务器可能返回304(资源未更新)而非200(新资源),浏览器需复

用本地缓存完成资源加载。

• 延长资源复用周期:合理的缓存策略可让资源在本地重复使用,减少同一资源的重复下载请求,提

升页面二次加载速度。

二、不同缓存策略对请求响应的具体改变

缓存策略HTTP请求状态响应状态码响应内容
强缓存(max-不发起请求200 OK (from cache)无服务器响应,直
age/immutable)资源
协商缓存(ETag/Last-发起条件请求(携带If-None-304 Not Modified(未更304无资源体;20
Modified)Match/If-Modified-Since)新)/ 200 OK(已更新)源+新缓存规则
禁用缓存(no-store)每次都发起完整请求200 OK返回完整新资源,
强制协商(no-cache)每次都发起条件请求304 Not Modified / 200 OK同协商缓存
  • 手动刷新(F5):强制跳过强缓存,对所有资源发起协商缓存请求,即使max-age未过期。

• 强制刷新(Ctrl+F5):完全禁用缓存,请求头携带Cache-Control: no-cache、Pragma: no-

cache,服务器返回200 OK+新资源,不复用本地缓存。

• 缓存过期且资源更新:协商缓存验证失败,服务器返回200 OK+新资源,浏览器更新本地缓存后使

用。

  1. 如何使用浏览器的开发者工具来分析和调试缓存行为?

主流浏览器(Chrome/Firefox/Edge)的开发者工具(F12或Ctrl+Shift+I)提供了完整的缓存分析能力,核心通过「Network(网络)」面板查看请求的缓存状态、头部信息,辅助以「Application(应

用)」面板管理缓存,精准定位缓存问题。

一、核心工具:Network(网络)面板

打开面板后,需先配置筛选条件:勾选「Disable cache(禁用缓存)」(调试时按需开启/关闭),刷新页面即可查看所有请求的缓存相关信息,核心关注以下维度:

  1. 查看缓存状态(Size列)

Size列直接显示请求的缓存来源,是判断缓存是否生效的核心依据:

  • from disk cache:从磁盘缓存加载(持久化缓存)。
  • from memory cache:从内存缓存加载(临时缓存)。
  • 304 Not Modified:协商缓存生效,复用本地缓存。
  • 显示具体文件大小(如200KB):未命中缓存,从服务器下载资源。
  1. 查看缓存相关HTTP头(Headers标签)

点击任意请求,在「Headers」标签页中查看「Request Headers(请求头)」和「Response Headers(响应头)」,验证缓存规则是否配置正确:

• 响应头:重点查看Cache-Control、Expires、ETag、Last-Modified,确认强缓存/协商缓存规则是

否生效。

• 请求头:协商缓存时,查看是否携带If-None-Match(对应ETag)、If-Modified-Since(对应

Last-Modified)。

  1. 过滤缓存相关请求(Filter筛选框)

在筛选框输入关键词,快速定位目标请求:

  • 输入 200:查看所有成功请求,区分“from cache”和“服务器返回”的200请求。
  • 输入 304:仅查看协商缓存生效的请求。
全站分卷索引 · 10 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷
  9. 9第 9 卷
  10. 10第 10 卷