用了CDN缓存,就会跳过强缓存和协商缓存吗?看了一下浏览器缓存,强缓存、协商缓存、CDN缓存。但他们的关系我有点迷糊。开启了用了CDN缓存,还会用到判断强缓存和协商缓存吗?大神们?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
这个问题吧,我说点儿自己的理解,可能不是特别准确,但是希望对你有帮助。
简单讲的话,这个 CDN 缓存与强缓存和协商缓存本身是两码事。强缓存和协商缓存是指浏览器在加载一个静态资源时,决定缓存是否命中的策略类型,一般的过程如下:
首先根据资源的 http header 来判定它是否命中强缓存,如果命中的话,请求是不会发送到服务器的,直接使用本地缓存即可
如果强缓存没命中,则一定会发送请求去服务器进行确认,这里就是协商缓存了,协商的过程会根据服务器的配置、请求发送的 http header 等信息来判定是否命中协商缓存,如果命中,浏览器还是会直接使用本地缓存的
而 CDN 缓存加速的原理是因为它会把资源缓存在节点上,这样访问某个资源时,直接访问 CDN 节点即可,不需要直接访问源站。你问题中指的是否跳过强缓存和协商缓存,这个是要看配置的。一般配置 CDN 的话,肯定都有管理控制台让你填一些参数的,比如内容、过期时间、权重等等,这些参数的意义在于,浏览器与 CDN 节点交互的时候,会根据这些参数以及你源站的配置来决定是直接返回缓存资源,还是将这个请求转发至源站(具体规则很复杂,你可以上网找文章详细了解一下),以让源站来决定返回什么样的资源,其中的过程也会包含上面一段所描述的强缓存与协商缓存的解析过程。
以上,个人拙见,大神轻喷。
- 1 回答
- 0 关注
- 1276 浏览
添加回答
举报
0/150
提交
取消