【问题标题】:Is Expires header not needed now?现在不需要 Expires 标头吗?
【发布时间】:2012-11-26 15:06:09
【问题描述】:

我看到大玩家(即 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

【问题讨论】:

标签: http caching cdn cache-control expires-header


【解决方案1】:

Cache-Control 在 HTTP 1.1 中被引入以取代 Expires。如果两个标题都存在,Cache-Control is preferred over Expires:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多