前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >节点缓存VS浏览器缓存

节点缓存VS浏览器缓存

原创
作者头像
mengmye
修改2021-06-01 17:07:25
1.2K0
修改2021-06-01 17:07:25
举报
文章被收录于专栏:腾讯云 CDN 专家服务

背景:

CDN节点缓存策略:

可根据实际业务场景设置合理的缓存策略,比如遵循源站、遵循CDN配置的缓存时间等,可针对不同的文件,或目录等灵活设置。在缓存时间内,CDN节点直接以缓存响应给客户端;若缓存过期,用户访问会触发节点回源校验文件是否更新。若文件缓存未过期,但源站更新了并希望用户立即访问到新文件,可提交刷新操作,强制清除CDN缓存,触发回源拉取。

浏览器缓存策略:

强制缓存:当浏览器向服务器发起请求时,服务器会将缓存规则放入HTTP响应报文的HTTP头中和请求结果一起返回给浏览器,控制强制缓存的字段分别是Expires和Cache-Control,其中Cache-Control优先级比Expires高。

协商缓存:强制缓存失效后,浏览器携带缓存标识向服务器发起请求,一般是使用 if-modified-since/Last-Modified 和 if-none-match/Etag 由服务器来决定浏览器缓存的资源是否可以使用。

一般情况下,节点缓存和浏览器缓存是独立的,并不会相互影响。但腾讯云在特定平台的特定场景下,两者会出现关联性。

问题描述:

客户反馈将域名vodtest.xiaobli.xyz “全部文件不缓存” 的策略删除后,访问如下url文件,CDN节点和浏览器均会缓存住,不符合预期。

https://vodtest.xiaobli.xyz/nbi/rt/traffic/overview?platform=2&today=2021-03-18

原因分析:

1、确认域名vodtest.xiaobli.xyz的节点缓存策略。

如下所示,客户反馈的url没有匹配到其中任何一条规则。

测试验证,复现到节点缓存住的现象(Hit From Disktank3即代表缓存命中)。且从响应头可以发现:

(1)节点未缓存命中时,无 Cache-Control: max-age头部;

(2)节点缓存命中时,有Cache-Control: max-age头部。

(3)绑定源站测试,源站无Cache-Control 相关的缓存头部。

为何CDN节点会缓存住该文件?带着这个问题,翻查产品文档(https://cloud.tencent.com/document/product/228/47672),找到答案如下:

平台默认策略

若您未配置任何规则或请求未命中配置的规则时,默认遵循以下平台策略:

  • 当用户请求您某一业务资源时,若源站对应的 HTTP Response Header 中存在 Cache-Control 字段,则遵循该 Cache-Control
  • 若源站对应的 HTTP Response Header 中无 Cache-Control 字段,则:CDN 节点默认对该资源缓存600s。

客户反馈的url,未命中配置的规则,且源站无 Cache-Control 字段,则CDN节点会缓存600s。

2、确认域名vodtest.xiaobli.xyz的浏览器缓存策略。

如下所示,该域名无浏览器缓存过期配置。在这种场景下,浏览器缓存多久取决于访问某资源时,服务器响应的Cache-Control

或Expires。一般情况下这2个头部都是继承源站的,CDN侧不会进行修改。客户反馈的这个url,源站没有这2个头部,按理应该不缓存。但由于该文件CDN节点缓存后,会默认加上Cache-Control: max-age=600,才导致浏览器也缓存住了。

解决方案:

若除了有明确设置缓存策略的文件类型外,其它文件均不需要缓存,可以采用如下方案(二选一即可)。

1、在当前缓存策略的基础上,新增一条“全部文件不缓存”(优先级最低)的兜底策略,控制台操作即可。

2、针对CDN侧没有设置明确缓存策略的文件类型,源站需要返回Cache-Control:no-cache之类的不缓存头部。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 平台默认策略
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档