CDN和URL';带有查询字符串的字符串

CDN和URL';带有查询字符串的字符串,url,cdn,Url,Cdn,我们在web服务器上有一个图像文件夹,可以通过CDN发布。有时,我们会在URL中附加类似查询字符串的语法,以帮助我们更新已更改的内容,尽管它很少这样做。例如: /images/file.png?20090821 这样的URL是否适用于您的平均内容交付网络?是的,我们使用Akamai,它保留请求的每个distict URL(包括查询字符串)的缓存副本。因此,对/images/file.png?20090821的第一个请求将转到源服务器。之后对/images/file.png?20090821的请

我们在web服务器上有一个图像文件夹,可以通过CDN发布。有时,我们会在URL中附加类似查询字符串的语法,以帮助我们更新已更改的内容,尽管它很少这样做。例如:

/images/file.png?20090821

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

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

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

/images/file.png/20090821

我们的CDN提供商还建议使用哈希机制。当我们发布内容时,它会向URL添加一个哈希,这样您就不必自己添加版本。不幸的是,我不知道如何实现这一神奇的细节。

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

amazon cloudfront

但是,更好的方法是将hash/md5添加到文件名本身(/images/file-29938829938929ASBSA88.png)。这样,忽略查询参数的缓存也将检测和服务修改后的资源。这个查询字符串是否标准化?或者,您需要在RESTAPI中为CDN定义一个参数,以便实际从该日期获取文件?嗨@Josh!这里没有标准化-只是土生土长的,如果CDN需要,很容易更改。