Caching 缓存破坏本地浏览器缓存,但确保来自Azure CDN而非源服务器的响应(Web角色)

Caching 缓存破坏本地浏览器缓存,但确保来自Azure CDN而非源服务器的响应(Web角色),caching,azure-web-roles,proxy-server,azure-cdn,Caching,Azure Web Roles,Proxy Server,Azure Cdn,我试图对Azure CDN(生产站点)上的项目发出HEAD请求,但希望避免来自本地浏览器缓存或源服务器(我的web角色)的响应。这将是一个流量很大的网站,内容都是静态的,因此从我的web角色的a/CDN文件夹中缓存在Azure CDN上 我已通过调用以下命令解决了避免本地浏览器缓存的问题: $.ajaxSetup({cache: false}); 另外,我的HEAD请求被用来简单地检索响应日期,因为我只需要保证当前时间(以GMT为单位)(Azure全部设置为GMT): 现在,我保证我的响应绝对

我试图对Azure CDN(生产站点)上的项目发出HEAD请求,但希望避免来自本地浏览器缓存或源服务器(我的web角色)的响应。这将是一个流量很大的网站,内容都是静态的,因此从我的web角色的a/CDN文件夹中缓存在Azure CDN上

我已通过调用以下命令解决了避免本地浏览器缓存的问题:

$.ajaxSetup({cache: false});
另外,我的HEAD请求被用来简单地检索响应日期,因为我只需要保证当前时间(以GMT为单位)(Azure全部设置为GMT):

现在,我保证我的响应绝对不会由浏览器上的缓存副本执行,但我不确定如何验证响应是否来自Azure CDN或源服务器(web角色)。我想保证,如果“small.png”出现在Azure CDN上,我的回答就是从那里来的。基本上,我需要确认我的源服务器不会被请求轰炸,CDN将限制99.9999999%的请求,包括这一个。但是,由于我的缓存在HEAD请求($.ajaxSetup({cache:false})之前被破坏,这会在请求上附加一个唯一的querystring,因此我不确定Azure CDN是否决定将请求转发到源服务器

请注意,通过Azure门户,我在我的CDN上未选中“Enable Querystring”。我认为这足以满足我的要求,但我想要一种温暖而模糊的感觉,即我的响应确实来自Azure CDN,而不是来源。Fiddler中是否有任何指标可以向我证明我的响应来自CDN(代理服务器)而不是源服务器

目前,我有30分钟的缓存到期时间,但当我们上线时,我将对此进行调整/优化。

保持“启用查询字符串”未选中正是您想要的


至于确定CDN是否根据给定的请求返回到原始服务器,您拥有原始服务器,对吗?这样您就可以看到您是否被命中。我不确定是否有办法通过查看CDN的响应来判断是缓存命中还是缓存未命中。

感谢您的响应smarx!我真的遇到了您在我从事这个项目的过程中,我们的smarxcdn博客发布了好几次。我的源服务器是Azure上的一个生产web角色,我将看看是否可以为RDP设置它来检查日志。我能够远程访问我的web角色的所有实例,并确认对small.png的HEAD请求在CDN上被阻止,这得益于正在处理的映像缓存在Azure CDN上,并且在Azure门户中的我的CDN端点设置中未选中“查询字符串”。谢谢!
$.ajax({
    type: "HEAD",
    async: true,
    url: "small.png",
    success: function (message, text, response) {
        doSomething(response.getResponseHeader("Date"));
    }
});