【发布时间】:2012-05-18 08:37:29
【问题描述】:
我们正在尝试通过 Azure CDN 上的 ETag 启用 HTTP 压缩 (gzip) 和 HTTP 304 缓存。我们已经发现了enabling Azure CDN Compression 的一个问题,但现在我们无法同时进行压缩和 ETag 缓存 (304s)。这个问题已经posted to Azure forums here。
Here is an example of the compressed,但不是 HTTP 可缓存 (304) 链接:
https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js
Here is an example of the cacheable (304),但不可压缩(gzip)链接:
https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.png
有谁知道如何让 HTTP 缓存 (304s) 和 HTTP 压缩 在 Azure CDN 上协同工作?
【问题讨论】:
-
我正在努力从 Windows Azure CDN 团队获得一些牵引力。我会在获得更多信息后立即提供答案。同时,您能否举例说明“通过 Etags 进行 HTTP 304 缓存”是什么意思?
-
我想我们知道发生了什么,但是我需要更多信息来调查我们这边。请您发送您的 Azure CDN 端点 (az######.vo.msecnd.net) 详细信息吗?
-
@Avkash - 请参阅上面的链接(例如,这里是...的示例)。我们当前的端点是 az194054.vo.msecnd.net
-
还有一个问题:您是指定 If-None-Match 还是 If-Match?根据我的经验,大多数用户依赖于修改日期和 GET If-Modified-Since。
-
@Avkash - 您刚刚找到了我们的解决方法!您应该将此作为解决方案发布。 This SO post 对 ETag/In-None-Match 与 Last Modified/If-Modified-Since 进行了很好的比较。如果您需要为具有多种编码等的给定实体缓存标志,则 ETag 似乎更强大。出于我们的目的, Last Modified/If-Modified-Since 工作得很好,我们不需要基于编码的变量缓存。你摇滚 - 请将此添加为答案。我们已根据需要使用 HTTP Header Last Modified 304 进行了验证。
标签: azure azure-web-roles http-compression http-caching azure-cdn