概述HTTP 缓存通过到期(max-age/immutable)与校验(ETag/Last-Modified)配合,减少不必要请求与带宽消耗。stale-while-revalidate 可以在后端刷新期间继续提供过期副本,提高可用性与性能。关键指令与校验`Cache-Control: max-age=31536000, immutable`:对版本化静态资源长期缓存,避免频繁校验[参考1,5]。`Cache-Control: no-cache` 与 `no-store`:前者允许缓存但每次使用需校验;后者禁止存储[参考1,5]。`ETag` 与 `Last-Modified`:校验缓存有效性,触发条件请求(`If-None-Match`/`If-Modified-Since`),降低重传成本[参考1,2]。`stale-while-revalidate`:允许在后台重新验证期间继续使用过期副本,提升用户体验[参考2,5,3]。`must-revalidate`:资源过期后必须与源站重新验证,防止断网时使用陈旧副本[参考5]。落地建议版本化静态资源启用长缓存与 `immutable`;动态接口结合 `ETag`/`Last-Modified` 与 `stale-while-revalidate`。区分用户态私有缓存与共享缓存(CDN);敏感资源结合 `private`/`no-store` 控制缓存范围[参考5]。参考与验证[参考1]MDN 指南:HTTP 缓存总览与 Cache-Control/ETag 示例:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Guides/Caching[参考2]web.dev:HTTP 缓存(ETag/Last-Modified、stale-while-revalidate):https://web.dev/i18n/zh/http-cache/[参考3]技术文章:Cache-Control max-age 与 stale-while-revalidate 的配合示例:https://dev.to/didof/web-caching-cache-control-3plb[参考4]技术文章:Cache-Control 与 ETag 的高效组合与 must-revalidate 解读:https://dev.to/andreasbergstrom/understanding-cache-control-and-etag-for-efficient-web-caching-2nf5[参考5]MDN 中文:Cache-Control 详解(immutable、stale-while-revalidate、must-revalidate):https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cache-Control关键词校验关键词聚焦 HTTP 缓存核心机制,与正文一致。

发表评论 取消回复