如果在HTTP响应中同时声明了Expires和max-age,哪个优先级更高?

50
如果一个HTTP响应同时返回了Expires和max-age指示,那么哪个会被使用?
Cache-Control: max-age=3600
Expires: Tue, 15 May 2008 07:19:00 GMT

考虑到每个时间点都不同。


在这种情况下,浏览器缓存会如何清除? 根据max-age的设定,它会再次请求Cloudflare吗? - undefined
2个回答

58

请参考这个答案:

三种.htaccess缓存过期规则的区别

如果一个响应同时包含Expires头和max-age指令,那么max-age指令会覆盖Expires头,即使Expires头更加严格。这个规则允许服务器为某个响应提供比HTTP/1.0缓存更长的过期时间给HTTP/1.1(或更高版本)缓存。这对于某些HTTP/1.0缓存因为时钟不同步而计算年龄或过期时间不正确的情况可能很有用。


2
这只是在Apache中还是一般规则?谢谢。 - vtortola
7
一般来说,这适用于所有情况;上面的段落摘自HTTP/1.1规范的第14.9.3节。 - Peter O.

14

这种情况在W3C的官方RFC中有解释。

max-age指令优先于Expires指令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接