【问题标题】:CDN and URL's with query-strings带有查询字符串的 CDN 和 URL
【发布时间】:2015-05-13 04:39:29
【问题描述】:

我们的网络服务器上有一个图像文件夹,可以通过 CDN 发布。有时我们将查询字符串之类的语法附加到 URL 以帮助我们更新已更改的内容,即使它很少这样做。示例:

/images/file.png?20090821

这样的 URL 是否适用于您的一般内容交付网络?

【问题讨论】:

  • 这个查询字符串标准化了吗?还是您需要在 REST API 中为 CDN 定义自己的参数才能实际从该日期获取文件?
  • 嗨@Josh!这里没有标准化 - 只是在 CDN 需要时自行开发并且很容易更改。

标签: url cdn


【解决方案1】:

【讨论】:

    【解决方案2】:

    是的,我们使用 Akamai,它保留了每个请求的不同 url 的缓存副本,包括查询字符串。因此,对 /images/file.png?20090821 的第一个请求将发送到源服务器。之后对 /images/file.png?20090821 的请求将从 Akamai 服务器获取图像。第二天,假设img src变为/images/file.png?20090822,第一个请求会再次到源站。

    【讨论】:

    • 但是,更好的方法是将 hash/md5 添加到文件名本身 (/images/file-299388299389299asbsa88.png)。这样,忽略查询参数的缓存也将检测并提供修改的资源。
    【解决方案3】:

    CDN 不会有问题。但是,您可能会遇到浏览器问题。一些浏览器不会缓存任何带有查询字符串的内容。尽管从 CDN 获取图像可能更快,但它不会像缓存图像那样快。所以你想做这样的事情,

    /images/file.png/20090821
    

    我们的 CDN 提供商还推荐使用哈希机制。当我们发布我们的内容时,它会在 URL 中添加一个哈希,因此您不必自己添加版本。不幸的是,我不知道这个魔法是如何完成的。

    【讨论】:

      【解决方案4】:

      amazon cloudfront 不会传播查询字符串。

      【讨论】:

        猜你喜欢
        • 2017-05-17
        • 2014-05-21
        • 1970-01-01
        • 2016-09-25
        • 2012-05-12
        • 2014-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多