HTTP 缓存是 Web 性能优化中最直接的工具之一。本文介绍常见 header 配置与策略。
关键 header
Cache-Control(max-age, public/private, immutable)、ETag与Last-Modified。
实践建议
- 对静态资源使用长缓存并结合内容哈希,动态内容使用短缓存和条件请求。
初步纲要
HTTP 缓存是提高前端资源交付效率与降低后端负载的核心机制。本文覆盖 Cache-Control、条件请求(ETag/Last-Modified)、以及 CDN 层的缓存策略。
基本头与语义
Cache-Control: max-age:客户端或 CDN 在指定时间内可直接使用缓存。ETag/If-None-Match:通过实体标签支持条件请求,服务端返回304以节省带宽。
CDN 与边缘缓存策略
- 在 CDN 层对静态资源启用长缓存(
immutable+ content-hash 文件名),对动态或个性化内容使用短 TTL 或按规则回源。 - 使用
stale-while-revalidate或stale-if-error提供更平滑的故障与升级体验。
缓存键与变体
- 为不同用户或变体(语言、设备)生成合适的缓存键,可使用查询参数或
Vary头控制缓存多样性。
失效与回滚
- 推荐使用 content-hash(内容哈希)而非手动清理 CDN 缓存,发布时通过新文件名实现无痛失效。
小结:合理组合缓存头、CDN 与内容命名策略能显著提升加载性能并降低基础设施成本。