HTTP Cache-Control max-age设为366天及以上是否无效?求文档参考
关于Cache-Control max-age超过365天的有效性问题
核心结论
Cache-Control: public, max-age=31622400, immutable这个配置完全合法,不会被视为无效。
详细说明
- HTTP规范(包括HTTP/1.1和HTTP/2)并未对
max-age的取值设置硬性上限,只要是正整数的秒数,就符合语法要求。366天对应的31622400秒是合法的取值。 - 所谓“max-age不超过365天”只是行业最佳实践,而非强制规范。这个建议主要源于两方面:
- 部分缓存系统(如部分CDN、浏览器缓存组件)会对超过1年的缓存时长做自动截断处理,避免极端长缓存带来的更新风险;
- 从业务运维角度,过长的缓存时长会增加资源更新的复杂度,一旦资源需要紧急替换,等待缓存过期的周期太长。
immutable指令与max-age时长无冲突,它的作用是告知客户端:在max-age有效期内,该资源绝对不会发生变更,无需发送条件请求(如If-None-Match)验证资源新鲜度,这个逻辑在max-age设为366天时依然有效。
内容的提问来源于stack exchange,提问作者Yusuf
相关产品推荐
相关产品推荐

