我正在尝试向 Azure CDN(生产站点)上的项目发出 HEAD 请求,但希望避免来自本地浏览器缓存或源服务器(我的 Web 角色)的响应。这将是一个访问量很大的网站,内容都是静态的,因此从我的 Web 角色的 /cdn 文件夹中缓存在 Azure CDN 上。
我已经通过调用解决了避免本地浏览器缓存的问题:
$.ajaxSetup({cache: false});
此外,我的 HEAD 请求用于简单地检索响应日期,因为我想要的是 GMT 中的保证当前时间(Azure 全部设置为 GMT):
$.ajax({
type: "HEAD",
async: true,
url: "small.png",
success: function (message, text, response) {
doSomething(response.getResponseHeader("Date"));
}
});
现在我保证我的响应绝对不会被浏览器上的缓存副本完成,但我不确定如何验证响应是来自 Azure CDN 还是来自源服务器(Web 角色)。我想保证如果“small.png”在 Azure CDN 上,我的响应来自那里。基本上,我需要确认我的源服务器不会被请求轰炸,并且 CDN 将限制 99.999999% 的请求,包括这个请求。但是,由于我在 HEAD 请求 ($.ajaxSetup({cache: false}); 之前将一个唯一的查询字符串附加到请求之前的缓存清除,我不确定 Azure CDN 是否决定将请求转发到源服务器。
请注意,通过 Azure 门户,我在我的 CDN 上未选中“启用查询字符串”。我认为这足以让我满意,但我想要一种温暖而模糊的感觉,即我的响应确实来自 Azure CDN 而不是起源。Fiddler 中是否有任何指标可以向我证明我的响应来自 CDN(代理服务器)而不是源服务器?
目前我的所有内容都有 30 分钟的缓存过期,但是当我们上线时我会调整/优化它。