为什么同一计算机缓存中的不同客户端的两个请求在云端丢失?

时间:2014-06-18 18:30:24

标签: curl amazon-cloudfront http-caching

My website使用cloudfront作为其图片。如果我在浏览器中加载网页,然后使用curl在该页面上请求图像,则curl请求是缓存未命中。使用curl的后续请求是缓存命中。

示例:运行两次:

curl --verbose https://d1hvwudqvjuczb.cloudfront.net/assets/landing/splash_dickenko-2199af423f275d0784c1813cbaab5645.jpg`

第一次,X-Cache将是“来自云端的小姐”,第二次是“从云端点击”。

因此,似乎cloudfront正在使用请求的某些方面来决定是否应该重新获取图像。

这个标准是什么?

1 个答案:

答案 0 :(得分:5)

您看到此行为的原因是您的请求不同。为了给您提供一些背景信息,基于http accept-encoding标头的Cloudfront缓存varys。在您的第一个示例中,您在浏览器中发送gzip的值。使用curl示例,默认情况下,您不是。因此,Cloudfront将此对象视为唯一。

尝试在curl中传递--compressed标志,看看该行为是否与您的浏览器匹配。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#CompressedCustomOrigin