Azure CDN - 启用带ETag的HTTP 304缓存 - 托管Web角色

8
我们正在尝试通过ETags在Azure CDN上启用HTTP压缩(gzip)和HTTP 304缓存。我们已经发现了一个问题,即启用Azure CDN压缩,但现在我们无法同时使压缩和ETag缓存(304s)正常工作。这个问题已经在Azure论坛上发布

以下是一个示例,该链接已被压缩, 但不可通过HTTP缓存(304):

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js

这是可缓存的示例(304), 但无法压缩(gzip):

https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.png

有人知道如何在Azure CDN上同时实现HTTP缓存(304s)HTTP压缩吗?请注意保留HTML标记。

2
我正在努力与Windows Azure CDN团队取得联系。一旦我获得更多信息,我会尽快提供答案。同时,您能否举例说明“通过Etags进行HTTP 304缓存”是什么意思? - AvkashChauhan
1
我认为我们知道正在发生什么,但是为了调查我们这边的情况,我需要更多的信息。请您发送您的Azure CDN端点(az######.vo.msecnd.net)的详细信息好吗? - AvkashChauhan
@Avkash - 请看上面的链接(例如:这里是一个示例...)。我们当前的终端节点是az194054.vo.msecnd.net - SliverNinja - MSFT
3
还有一个问题:你是指定If-None-Match还是If-Match?根据我的经验,大多数用户依赖修改日期和GET If-Modified-Since。 - AvkashChauhan
1
@Avkash - 你刚刚发现了我们的解决方法!你应该将它发布为解决方案。这篇 SO 帖子ETag/In-None-MatchLast Modified/If-Modified-Since 进行了很好的比较。如果您需要为具有多个编码的给定实体添加缓存标志,等等,似乎 ETag 更强大一些。对于我们的用途,Last Modified/If-Modified-Since 工作得足够好,我们不需要基于编码进行可变缓存。你真棒,请将此作为答案添加。我们已验证使用 HTTP 头 Last Modified 的 304s 如期运作。 - SliverNinja - MSFT
显示剩余3条评论
1个回答

4
重要的是要知道您是否指定了 If-None-Match 或 If-Match?根据我的经验,大多数用户依赖修改日期和 GET If-Modified-Since。
如果您需要为具有多个编码的给定实体设置缓存标志等,则 ETag 更强大。
对于您的需求,请使用 Modified/If-Modified-Since,您不需要基于编码进行变量缓存,这应该可以工作。
更多信息在此处:HttpWebResponse LastModified

感谢您的帮助 - 这对我们来说是一个重要问题! - SliverNinja - MSFT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接