http - AWS CloudFront, `Vary` header 和内容协商

标签 http cdn amazon-cloudfront

我正在尝试基于客户端 Accept header 实现内容协商,以便接受 image/webp 的客户端获得 webp 图像,而客户端不会变得很旧图片。 webp 和 jpeg 图像从相同的 url 提供,即/images/foo-image/并且返回的内容因客户端提供的 Accept header 而异。这现在在我的网站上运行良好。

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

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

有人知道是什么吗?

最佳答案

原来这是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

关于http - AWS CloudFront, `Vary` header 和内容协商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16510700/

相关文章:

css - 使用 jquery-ui 更改日期选择器的样式

amazon-web-services - S3 存储桶策略中的 AWS 多个 CloudFront 分配

amazon-web-services - 与Web服务器位于同一域的AWS CloudFront分配

angular - Mozilla Firefox浏览器出现 "XML Parsing Error"怎么解决

javascript - 从 Javascript Express 应用程序中进行 http 调用

spring - Swagger UI 不显示参数

linux - curl 并检查 403 错误代码

performance - 使用 Cache 还是 CDN 更好?

node.js - 如何使用 Node.js 从 AWS CloudFront 连接到 AWS ElastiCache 集群?

azure - Sitecore 媒体库和 Azure CDN