CDN如何给动态网页加速?
Admin 2023-05-23 群英技术资讯 1115 次浏览
本篇内容介绍了“CDN如何给动态网页加速?”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以前说CDN的优势是其在网络边缘缓存了用户请求的内容,离用户近,从而保证用户的访问效果;但是动态网页由于是源站动态生成的内容,CDN的边缘节点无法存储用户请求的内容,请求到了边缘节点之后还得回源,传统CDN架构上的优势就没有了。那么cdn动态加速还没有价值?首先让我们看看cdn动态加速技术是怎么样的:
让我们看以下公式:
用户请求耗费的时间=用户和边缘交互的时间+边缘等待的时间;
其中用户和边缘交互的时间,我们可以看做用户向边缘请求一个静态文件的时间,边缘等待时间,是用户请求到了以后,边缘需要向用户发送数据,确没有数据可以发送,等他数据到达的这段时间;CDN动态加速技术的本质主要是要减少第二部分的时间;
首先我们说,通过网络优化和协议优化,我们可以容易的把上面那个公式变成下式:
用户请求耗费的时间=用户和边缘交互的时间+1*RTT(边缘到源站)+源站的反应时间;
让我们忽略掉源站的反应时间,因为他和我们今天讨论的动态加速没有关系,我们可以把它看做一个常量;
Ok,让我们看看,这是怎么做到的,首先让我们看看,不优化的时候是个什么情况,如图1所示,最坏情况下边缘等待的时间 = 建立连接的时间(1*RTT)+发送请求的时间(1*RTT)+数据传输中的等待时间。

其中通过优化我们可以把建立连接的时间消灭掉,有两种发送可以做到这一点:
1. 通过连接复用,保证每次动态请求到达时,边缘和源之间的通路,连接都已经建立了,它的弊端是在突发情况下很难保证;
2. 通过TCP协议栈的定制,把连接和请求的过程合并起来,这事我们在09年就一直在说,只不过由于种种原因没有做下去,据说google已经做出来了;
除此以外我们还可以把数据传输开始以后的等待时间给去除掉,这里面涉及到了两个技术,一个是动态路由,一个是TCP协议优化;
动态路由:所谓动态路由,指的是利用CDN节点多的优势,把每个节点都看做一个路由,在边缘A和源B之间找到一个最佳路径,也就是说以前是直接从A到B,变成了A-C-D-B;另外还需要强调的是,D-B之间一定是要通过连接建立,而且D-B一定要很近,时延很小,否则的话TCP协议优化就发挥不了作用;通过动态路由技术我们可以在A-B间建立一个更低的RTT和更小的丢包率的通过;
节点间的TCP协议优化:有了动态路由做保证,节点间的TCP协议优化就是很简单的事情了,我们要知道用户的带宽往往是有限的,而节点间的带宽往往是冗余的,我们要做到节点间的发送速率高于边缘到用户是非常容易的,改几行代码就够了;
通过以上一些技术我们就可以把图1精简成图2:

这还不够,我们能不能把这一个时延也去掉呢,这是部分可能的,这里面涉及到了一下一些技术:
1. 缓存,部分的动态内容也是可以在很短的时间内缓存的;
2. 预取:通过用户请求的页面内容解析,预先感知用户接下来要获取的内容,提前预取;
3. 在边缘生成用户请求的内容,这个水太深,我说不清楚,点到为止;
4. 证书类:通过在边缘部署SSL证书,在边缘将SSL请求,变成普通请求,从而将动态加速变成静态加速,但是如此是有风险的,把CDN运营商看成安全是不安全的;
除了以上一些技术以外,我还漏了一个,那就是压缩,压缩分成两部分,一部分是http头支持的压缩,这些就不要让CDN帮你干了,源站应该自己做的;另一部分是CDN节点间的,如此可以减少CDN节点间传递的数据量,从而变向加快传输速度;但是这里会增加机器的CPU负载,同时,有了TCP协议优化技术,不需要通过压缩来提高传输速度,所以个人认为它不重要。
现在大家对于CDN如何给动态网页加速?的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注群英网络,群英网络将为大家推送更多相关的文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
jsDeliver+github使用教程,免费的cdn
CDN与缓存的归纳理解
很多不清楚人自己的账号密码是如何丢失的,这很可能是因为黑客通过暴力破解攻击不断尝试登录你的账号名和密码,最终造成你的账号密码丢失,那么究竟暴力破解攻击是什么?如何检测和防御呢?
防火墙是什么?很多朋友可能知道防火墙,但是对于如何解释防火墙是什么,以及防火墙的重要性可能不是很了解,对此本文就给大家来讲讲防火墙,感兴趣的朋友就继续往下看吧。
SQL注入防御的方法有:1、PreparedStatement;2、使用正则表达式过滤传入的参数;3、字符串过滤。其中,采用预编译语句集是简单又有效的方法,因为它内置了处理SQL注入的能力。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008