HTTP缓存是提升网页性能的关键技术,通过减少重复请求和带宽消耗,显著优化用户体验。以下是核心知识点:

一、缓存作用

  • 加速资源加载:本地存储已获取资源,避免重复传输
  • 降低服务器压力:减少后端处理请求的频率
  • 节省网络流量:尤其对移动端用户意义重大
  • 实现离线访问:在无网络时仍可查看缓存内容

二、关键HTTP头字段

头字段 作用 示例
Cache-Control 控制缓存行为 max-age=3600, public
ETag 资源唯一标识 "abc123"
Last-Modified 最后修改时间 Wed, 21 Oct 2020 07:28:00 GMT
Expires 缓存过期时间 Wed, 29 Oct 2020 16:41:00 GMT
Vary 决定缓存是否匹配 User-Agent

三、缓存策略类型

  1. 强缓存(无需验证)

    • 通过Cache-ControlExpires直接使用缓存
    • ⏱️ 速度快但可能造成数据不一致
  2. 协商缓存(需要服务器验证)

    • 使用ETag/If-None-MatchLast-Modified/If-Modified-Since
    • 🤝 保证数据新鲜度与缓存效率的平衡
  3. 私有缓存 vs 公共缓存

    • private:仅用户终端缓存(如图片)
    • public:可被代理服务器缓存(如静态资源)

四、缓存流程图

HTTP缓存流程图

五、缓存验证与更新

  • 304 Not Modified:资源未改变,直接使用缓存
  • 200 OK:资源已更新,返回新内容
  • 缓存失效处理:通过Cache-Control: no-cache触发验证

六、扩展阅读

想要深入了解实际应用中的缓存实现细节,可以参考:
/zh/articles/http-cache-implementation
了解如何通过代码配置缓存策略,或查看相关工具的使用指南。