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

Joh*_*hir 1 curl http-caching amazon-cloudfront

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

示例:运行两次:

curl --verbose https://d1hvwudqvjuczb.cloudfront.net/assets/landing/splash_dickenko-2199af423f275d0784c1813cbaab5645.jpg`
Run Code Online (Sandbox Code Playgroud)

第一次,X-Cache将是"来自云端的小姐",第二次将是"来自云端".

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

这个标准是什么?

imp*_*lix 5

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

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

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