概述`Cache-Control: immutable` 指示响应在新鲜期内不会更新,客户端无需重新验证(如刷新时的条件请求)。适用于通过版本化 URL 提供的静态子资源(JS/CSS/字体/图片),显著降低不必要的 304 往返与延迟。语义与协作响应标注 `immutable`(配合适当的 `max-age`)表明资源在新鲜期不变,客户端与代理可跳过重新验证;若客户端显式提出 `no-cache` 请求指令,仍可验证[参考2,1,3]。与版本化 URL(内容哈希)配合:长期 `max-age` + `immutable`,通过更换 URL 发布新版本,避免猜测更新时机[参考1,5]。注意事项对响应大小难以可靠获知的资源(例如以连接关闭界定长度)不适用;对可能更新的文档或接口不适用[参考2]。在代理与用户代理接受语义一致;谨慎用于需强一致的场景(避免误用导致长期缓存旧内容)。参考与验证[参考1]RFC 8246:HTTP Immutable Responses(语义与示例):https://www.rfc-editor.org/rfc/rfc8246.html[参考2]RFC 8246 中文:不可变响应说明与客户端/代理行为与例外:https://rfc2cn.com/rfc8246.html[参考3]HTTPWG:RFC 8246 概览:https://httpwg.org/specs/rfc8246.html.[参考4]RFC 8246 文档(IETF Datatracker):https://datatracker.ietf.org/doc/html/rfc8246[参考5]MDN:`Cache-Control` 文档对 `immutable` 的解释与建议:https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control关键词校验关键词与 `immutable` 使用场景一致。

发表评论 取消回复