参考资料

  1. 设置请求报头 设置教程
  2. 状态码过期时间
  3. 支持的MimeType 设置教程
  4. 腾讯云cdn配置教程
  5. 允许异步读取源站 设置教程
  6. CDN流量封顶配置详解
  7. 最大并发连接数设置教程
  8. 自动跳转到HTTPS的详细技术解析

CDN中的客户端过期时间(Expires) 是HTTP响应头字段

CDN中的客户端过期时间(Expires) 是HTTP响应头字段,用于告知浏览器或客户端缓存资源的过期时间点。其核心机制如下:


1. 定义与作用

  • 功能:服务器通过Expires头指定资源在客户端的绝对过期时间(GMT格式)。

  • 效果:客户端在首次加载资源后,若再次请求该资源且本地时间未超过Expires时间,则直接使用本地缓存,无需向CDN或源站发起请求


2. 语法示例

Expires: Wed, 21 Oct 2025 07:28:00 GMT
  • 资源将在2025年10月21日 07:28:00 GMT后失效,需重新向服务器验证。


3. 关键特性

  • 绝对时间依赖
    客户端本地时间必须准确。若用户设备时间错误(如提前),可能导致缓存提前失效或延迟更新

  • HTTP/1.0遗留字段
    优先级低于HTTP/1.1的Cache-Control: max-age(相对时间)。若两者共存,max-age优先级更高。


4. 局限性

  • 时间同步问题
    依赖客户端系统时间,时区或时钟错误会破坏缓存逻辑。

  • 静态资源适用性
    仅适用于长期不变的静态资源(如图片、CSS)。动态资源需用Cache-Control: no-cache等更灵活策略。

  • 无法强制更新
    若资源在过期前修改,客户端仍会使用旧缓存,除非手动清除或修改URL(如添加版本号)。


5. 与Cache-Control对比

字段类型优先级优势
Expires绝对时间语义明确
Cache-Control: max-age相对时间(秒)不依赖客户端时间,更可靠

实践建议

  • 弃用趋势
    现代项目优先使用Cache-Control: max-age=3600(例如缓存1小时),避免时间同步问题。

  • 兼容性处理
    如需支持旧浏览器,可同时返回ExpiresCache-Control,但确保max-age逻辑为主。

⚠️ 注意:若需精确控制缓存,推荐结合ETagLast-Modified实现条件请求,而非仅依赖Expires