3

我看到大玩家(即 akamai)开始一起放弃Expires标题并且只使用Cache-Control,例如

curl -I https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-snc7/395029_379645875452936_1719075242_n.jpg

HTTP/1.1 200 OK
Last-Modified: Fri, 01 Jan 2010 00:00:00 GMT
Date: Sun, 25 Nov 2012 16:46:43 GMT
Connection: keep-alive
Cache-Control: max-age=1209600

那么还有什么理由继续使用Expires吗?

4

1 回答 1

3

Cache-Control在 HTTP 1.1 中被引入以取代Expires。如果两个标头都存在,则Cache-Control优先于Expires

如果响应包含 Expires 标头和 max-age 指令,则 max-age 指令将覆盖 Expires 标头,即使 Expires 标头更具限制性。对于给定的响应,此规则允许源服务器向 HTTP/1.1(或更高版本)缓存提供比 HTTP/1.0 缓存更长的到期时间。如果某些 HTTP/1.0 缓存不正确地计算年龄或过期时间,这可能很有用,可能是由于时钟不同步。

但仍有一些客户端只能使用 HTTP 1.0。因此,对于 HTTP 1.0 请求/响应,您仍应使用Expires

于 2012-11-25T16:53:11.103 回答