【问题标题】:Why are two requests with different clients from the same computer cache misses on cloudfront?为什么来自同一台计算机的不同客户端的两个请求在云端缓存未命中?
【发布时间】:2014-08-09 04:04:41
【问题描述】:

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

示例:运行两次:

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

第一次X-Cache是“来自云端的小姐”,第二次是“来自云端的命中”。

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

这个标准是什么?

【问题讨论】:

  • 确保您确实看到了您认为自己看到的内容,并且始终可以重复。 Cloudfront 不是一个地方的单一事物,因此并非每一次失误都会受到打击。会不会是饼干?在 Cloudfront 中开启日志记录。
  • 该域上没有 cookie。我看到的行为是可重复的。我可以想象,因为 CDN 的目的是不必为同一地理区域的用户重新获取内容,所以我可以合理地假设来自同一台计算机的 2 个请求不会导致重新获取绝大多数时间。

标签: curl amazon-cloudfront http-caching


【解决方案1】:

您看到此行为的原因是您的请求不同。为您提供一些背景知识,Cloudfront 缓存因 http 接受编码标头而异。在您的第一个示例中,在您的浏览器中,您发送的是 gzip 的值。对于您的 curl 示例,默认情况下,您不是。因此 Cloudfront 认为这个对象是独一无二的。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2019-03-31
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    相关资源
    最近更新 更多