概述`s-maxage` 用于共享缓存(CDN/代理),覆盖 `max-age` 的新鲜期;私有缓存忽略该指令。历史上的 `Surrogate-Control` 在不同 CDN 间存在实现差异。建议优先使用标准 `Cache-Control` 指令,并在必要时参考各 CDN 的文档兼容策略。指令语义`s-maxage=<秒>`:仅作用于共享缓存,并覆盖 `max-age/Expires`;私有缓存忽略[参考1,3]。`max-age=<秒>`:作用于所有缓存;若存在 `s-maxage`,共享缓存以 `s-maxage` 为准[参考1,3]。Surrogate-Control 与兼容作为起源侧对代理/CDN的“代理控制”头,不同厂商存在不兼容实现;Akamai/Fastly/Cloudflare 联合推动更统一的“Targeted Cache Control”方向[参考2]。具体 CDN 对 Cache-Control 支持范围存在差异(如部分产品仅支持 `max-age`),需按产品文档与测试确认[参考4]。落地建议起源统一使用标准 `Cache-Control`(`s-maxage`/`max-age`/`must-revalidate` 等);在 CDN 层进行规则补充。对共享缓存与私有缓存的时效区分:入口文档较短时效,子资源长时效;必要时以 `s-maxage` 调整边缘行为。参考与验证[参考1]MDN:`Cache-Control` 文档(`s-maxage` 语义与覆盖关系):https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Cache-Control[参考2]Akamai 博客:Targeted Cache Control 与 Surrogate-Control 兼容性讨论:https://www.akamai.com/blog/news/targeted-cache-control[参考3]MDN 中文:`Cache-Control` 指令说明(`must-revalidate/s-maxage` 等):https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Headers/Cache-Control[参考4]Microsoft Q&A:Azure CDN 对指令支持差异说明(产品差异):https://learn.microsoft.com/en-us/answers/questions/316956/azure-cdn-should-respect-origin-cache-control关键词校验关键词与 CDN 缓存策略一致。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部