AWS CloudFront,`Vary`标题和内容协商

时间:2013-05-12 18:31:14

标签: http cdn amazon-cloudfront

我正在尝试基于客户端Accept标头实现内容协商,以便接受image/webp的客户端获取webp图像,而客户端则不会获得普通的旧jpeg。 webp和jpeg图像由相同的URL提供,即/ images / foo-image /,并且返回的内容在客户端呈现的Accept标题上变化。现在这在我的网站上运行得很好。

接下来的挑战是让这个有效的AWS CloudFront坐在我的网站前面。我将Vary标头设置为Vary: Accept,让CloudFront知道它必须根据客户端Accept标头缓存和提供不同的内容。

不幸的是,这似乎并不起作用,即CloudFront只是提供它首先得到的任何东西,VaryAccept尽管如此。有趣的是,CloudFront似乎能够根据Accept-Encoding(即gzip)改变内容。

有谁知道是什么给出了什么?

2 个答案:

答案 0 :(得分:4)

事实证明这是documented因为不应该起作用:

The only acceptable value for the Vary header is Accept-Encoding. CloudFront ignores other values.

更新: AWS now has support for more sophisticated content negotiation。我写了blog post on how to take advantage这个。

答案 1 :(得分:1)

为了更新这个问题,CloudFront现在支持不同标头的缓存,因此您现在可以执行此操作