---

title: "CDN 缓存容错:stale-while-revalidate 与 stale-if-error"

keywords:

  • RFC 5861
  • stale-while-revalidate
  • stale-if-error
  • Cache-Control
  • 容错
  • 到期

description: "解释 RFC 5861 扩展指令在容错与更新路径中的作用,给出响应与请求侧的适用范围,并结合实际策略建议与权威来源。"

categories:

  • 文章资讯
  • 编程技术

---

概述

RFC 5861 定义了 stale-while-revalidatestale-if-error 两个扩展,用于在响应过期或源站错误时允许缓存短暂提供陈旧副本,提升可用性同时在后台刷新或回退至错误透传。

指令说明

  • stale-while-revalidate=<秒>:资源过期后可在后台重新验证期间返回陈旧副本,缓存不应阻塞刷新[参考1,2,3,4]。
  • stale-if-error=<秒>:当源站返回错误(如 500)时,在给定窗口内允许返回陈旧副本而非错误[参考2]。
  • 指令可用于响应或请求侧;响应侧应用于适配所有针对该缓存副本的请求,请求侧仅作用于当前请求[参考1,2]。

实践建议

  • 适用于内容型页面与可容忍短暂陈旧的接口;与 ETag/Last-Modified 配合实现高效重验证。
  • 设置合理的窗口时间,避免长期陈旧;监控回退频率与源站错误比例,优化回源与扩容策略。

参考与验证

  • [参考1]RFC 5861:陈旧内容的 Cache-Control 扩展规范:https://datatracker.ietf.org/doc/html/rfc5861
  • [参考2]RFC 5861 官方页面(说明与示例):https://www.rfc-editor.org/rfc/rfc5861
  • [参考3]HTTPWG:RFC 5861 概览:https://httpwg.org/specs/rfc5861.html
  • [参考4]MDN:Cache-Control 引用 RFC 5861 与 immutable 说明:https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control

关键词校验

关键词聚焦 RFC 5861 扩展与容错缓存,与正文一致。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部