过期标题最大值

Ben*_*mon 5 amazon-s3 http-headers

我在S3存储桶上有数百万个图像文件,我知道它们永远不会改变.为了优化请求,我决定在我的文件中添加一个过期标题(如下所述:google page speed rules)

将标题添加到我的所有文件的过程是漫长而昂贵的,所以我不想重复它.但是,Http Rfc建议将Expires标头设置为未来一年的最大到期日期:

HTTP/1.1服务器不应该在将来发送超过一年的过期日期

...这意味着我必须在一年内更新我的标题.

我的问题是:

我可以将标头值设置为非常远的日期(例如:01-01-2020)并违反RFC建议吗?这样做的风险是什么?

是否有另一种解决方案告诉客户请求我的文件无限期地缓存它们,而不必更新我的亚马逊S3存储上的任何内容?

Bra*_*des 11

您还可以设置更现代的标头:

Cache-Control: max-age=31536000, public
Run Code Online (Sandbox Code Playgroud)

每个用户代理在加载每个图像时都愿意在要求新副本之前将其缓存一整年.(大整数有365×24×60×60秒.)如果还有不了解Cache-Control的浏览器,它们可能会在图像的生命周期内逐渐消失!


use*_*016 1

您可以将标头值设置为 2038 年 1 月 19 日左右的最大值(最大 32 位时间戳)。这就是谷歌一段时间以来在跟踪 cookie 过期时间方面所做的事情。

这样做的唯一风险是,如果有一天,由于某种原因,您决定更改图像(或注意到一个或多个图像存在问题),您的客户将不会下载新版本。您决定是否值得冒这个风险。

除此之外,我真的没有看到任何潜在的问题。