HTTP缓存治理之Cache-Control与ETag协同概览`Cache-Control` 管理新鲜度与再验证;`ETag`/`If-None-Match` 提供条件 GET 与 304 协商。对静态不可变资源使用 `max-age`+`immutable`;对频繁变更资源配合再验证与版本别名。结合 `Vary` 控制按请求维度分桶,避免错误共享与污染。技术参数(已验证)新鲜度:`Cache-Control: public, max-age=<seconds>, immutable` 用于指纹化静态资源;动态响应使用 `no-cache` 支持再验证。条件:客户端携带 `If-None-Match`;服务端比较强/弱 `ETag`,匹配返回 `304` 并保留实体标签。代理:为 CDN 设置 `s-maxage` 与 `stale-while-revalidate/stale-if-error`;严格区分代理与浏览器策略。维度:使用 `Vary: Accept-Encoding, User-Agent` 等维度控制缓存键;避免不必要的高基数维度。一致性:更改实体时更新 `ETag`;避免与 `Last-Modified`/`If-Modified-Since` 的歧义配置。实战清单为静态资源启用长效缓存与 `immutable`;动态接口使用条件请求与 304 协商。在 CDN 配置 `s-maxage` 与容错扩展;验证 `Vary` 维度与命中率。建立缓存观测与命中仪表盘;在发布管线管理指纹与别名。Importance: 平衡命中率与一致性,减少带宽与延迟并避免污染。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部