如何为Cloudfront设置永久缓存?

时间:2016-02-18 16:54:59

标签: http-headers amazon-cloudfront

我已阅读文档并尝试设置永久的云端缓存。我们的想法是,一旦下载图像,您就不需要再次下载它。我正在查看我的网络标签,但我认为不是。有人能告诉我这个文件是否有正确的缓存设置吗?

https://d2t4fc8ff77neh.cloudfront.net/cardSrcMedia/1abqkohet_plain_red_heart_graphic_with_a_drop_shadow_0071-0910-0216-0922_SMU.jpg

我的标题:

var headers = {
  'Content-Length': options.data.length,
  'Vary': 'Accept-Encoding',
  'Expires': 1000 * 60 * 60 * 24 * 365 * 5,
  'x-amz-acl': 'public-read',
  'Content-Type': options.type
}

1 个答案:

答案 0 :(得分:2)

您的图片看起来像是由CloudFront缓存的,但您的过期标头值无效。

来自HTTP 1.1规范(https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html):

  

格式是HTTP-date in定义的绝对日期和时间   第3.3.1节;它必须是RFC 1123日期格式

  

HTTP / 1.1客户端和缓存必须处理其他无效日期格式,   特别是包括值“0”,如同过去一样(即“已经”   过期“)。

  

要将响应标记为“永不过期”,原始服务器会发送一个
  到期日期约为答复时间的一年   发送。 HTTP / 1.1服务器不应发送多于一个的过期日期   未来一年。

使用Cache-control标头可能更好,因为它取代了Expires标头。这样的事情会产生同样的效果:

Cache-Control: max-age=31536000