1

我已经为这个问题苦苦挣扎了好几天。

存储在缓存中的对象的年龄是多少。特别是,我想知道 Cloud Front。如果我指定

缓存控制:max-age=60,公共

当我在 T = N 上传它,然后 10 分钟过去了,我的实体的官方年龄是 600 秒吗?换句话说,一个实体的年龄是现在 - T 吗?

例如,如果我将一个过期日期为 30 分钟的文件推送到 S3,然后我在 1 周内不推送它的新版本,Cloud Front 是否会重新验证(GET If-Modified-Since)该实体每个请求?或者它会每 30 分钟重新验证一次实体,并在每次重新验证后将年龄设置回 0?

我在这里寻找年龄的定义,但我不太确定答案是什么:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

4

1 回答 1

1

max-age指令指定时间(以秒为单位),在此之后客户端应认为给定 URL 的内容无效。

这意味着如果您的 max-age 为 10 分钟,则在 t 时刻获取资源,然后如果您需要 t + 9 分钟的内容,则不会获取该内容。但它的到期日期在客户端保持不变。

这意味着在 t + 10 分钟后的任何时刻,将再次获取内容,并重新计算其到期时间(因为它可能同时发生了变化)。

至少,客户应该是这样操作的。

max-age=0 相当于“总是再次获取该资源”。

于 2013-01-12T15:27:12.800 回答