一文入门CDN(包含CDN缓存、缺点、策略等内容)
Admin 2023-05-23 群英技术资讯 883 次浏览
今天这篇给大家分享的知识是“一文入门CDN(包含CDN缓存、缺点、策略等内容)”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“一文入门CDN(包含CDN缓存、缺点、策略等内容)”文章能帮助大家解决问题。
CDN是什么?
谈到CDN的作用,可以用8年买火车票的经历来形象比喻:
缓存是什么?
客户端浏览器先检查是否有本地缓存是否过期,如果过期,则向CDN边缘节点发起请求,CDN边缘节点会检测用户请求数据的缓存是否过期,如果没有过期,则直接响应用户请求,此时一个完成http请求结束;如果数据已经过期,那么CDN还需要向源站发出回源请求(back to the source request),来拉取最新的数据。CDN的典型拓扑图如下:
客户端(浏览器)缓存
客户端缓存的缺点
浏览器缓存策略
Expires
如果http响应报文中设置了Expires,在Expires过期之前,我们就避免了和服务器之间的连接。此时,浏览器无需想浏览器发出请求,只需要自己判断手中的材料是否过期就可以了,完全不需要增加服务器的负担。
Cache-control: max-age
Last-Modified
这样浏览器就知道他收到的这个文件创建时间,在后续的请求中,浏览器会按照下面的规则进行验证: 1. 浏览器:Hey,我需要jquery.min.js这个文件,如果是在 Tue, 06 Jan 2015 08:26:32 GMT 之后修改过的,请发给我。 2. 服务器:(检查文件的修改时间) 3. 服务器:Hey,这个文件在那个时间之后没有被修改过,你已经有最新的版本了。 4. 浏览器:太好了,那我就显示给用户了。
ETag
通常情况下,通过修改时间来比较文件是可行的。但是在一些特殊情况,例如服务器的时钟发生了错误,服务器时钟进行修改,夏时制DST到来后服务器时间没有及时更新,这些都会引起通过修改时间比较文件版本的问题。
接下来的访问顺序如下所示: 1. 浏览器:Hey,我需要jquery.min.js这个文件,有没有不匹配"39001d-1762a-50bf790757e00"这个串的 2. 服务器:(检查ETag…) 3. 服务器:Hey,我这里的版本也是"39001d-1762a-50bf790757e00",你已经是最新的版本了 4. 浏览器:好,那就可以使用本地缓存了 如同 Last-modified 一样,ETag 解决了文件版本比较的问题。只不过 ETag 的级别比 Last-Modified 高一些。
额外的标签
浏览器缓存刷新
1. 在地址栏中输入网址后按回车或点击转到按钮 浏览器以最少的请求来获取网页的数据,浏览器会对所有没有过期的内容直接使用本地缓存,从而减少了对浏览器的请求。所以,Expires,max-age标记只对这种方式有效。CDN缓存
浏览器本地缓存失效后,浏览器会向CDN边缘节点发起请求。类似浏览器缓存,CDN边缘节点也存在着一套缓存机制。
CDN缓存的缺点
CDN缓存策略
CDN边缘节点缓存策略因服务商不同而不同,但一般都会遵循http标准协议,通过http响应头中的Cache-control: max-age的字段来设置CDN边缘节点数据缓存时间。
CDN缓存刷新
CDN边缘节点对开发者是透明的,相比于浏览器Ctrl+F5的强制刷新来使浏览器本地缓存失效,开发者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制CDN节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是关于数据库日志分析的内容。掌握数据库日志分析的操作还是很重要的,对数据库日志进行分析,能够发现攻击行为,从而做出应对及解决,那么具体怎样进行数据库日志进行分析呢?下面我们一起来了解看看。
高性能利器:CDN我建议你好好学一下!
CDN动态加速技术
这篇文章我们来了解一下JavaScript原型链污染攻击,对于JavaScript原型链污染有一些朋友不清楚是什么,对此本文就给大家来介绍一下,感兴趣的朋友接下来就跟随小编来了解看看吧!
CDN是什么与CDN加速的原理
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008