首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存破坏本地浏览器缓存,但确保来自Azure CDN而不是来自源服务器的响应(Web角色)

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

Stack Overflow用户
提问于 2012-11-05 07:14:27
回答 1查看 559关注 0票数 2

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

我已经解决了避免本地浏览器缓存的问题,方法是调用:

代码语言:javascript
复制
$.ajaxSetup({cache: false});

此外,我的HEAD请求被用来简单地检索响应日期,因为我想要的是GMT中保证的当前时间(Azure都设置为GMT):

代码语言:javascript
复制
$.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上没有选中"Enable Querystring“。我认为这足以满足我,但我想要的是温暖和模糊的感觉,确实我的回应来自Azure CDN而不是origin。在Fiddler中有什么指标可以证明我的响应来自CDN(代理服务器)而不是源站吗?

目前我对所有东西都有30分钟的缓存过期时间,但我会在上线后调整/优化这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-05 08:07:07

保持"enable query string“不被选中,这就是你想要的。

对于CDN请求是否回源站的判断,源站是您自己的,对吧?所以你可以看到你是不是被击中了。我不确定是否有办法仅通过查看CDN的响应来判断它是缓存命中还是缓存未命中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13223965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档