透视 HTTP 协议
罗剑锋(Chrono)
前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者
63943 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
开篇词 (1讲)
透视 HTTP 协议
15
15
1.0x
00:00/00:00
登录|注册

37 | CDN:加速我们的网络服务

课下作业
CDN发展
CDN的负载均衡
CDN
应用
HTTP协议
CDN加速网络服务

该思维导图由 AI 生成,仅供参考

在正式开讲前,我们先来看看到现在为止 HTTP 手头都有了哪些“武器”。
协议方面,HTTPS 强化通信链路安全、HTTP/2 优化传输效率;应用方面,Nginx/OpenResty 提升网站服务能力,WAF 抵御网站入侵攻击,讲到这里,你是不是感觉还少了点什么?
没错,在应用领域,还缺一个在外部加速 HTTP 协议的服务,这个就是我们今天要说的 CDN(Content Delivery Network 或 Content Distribution Network),中文名叫“内容分发网络”。

为什么要有网络加速?

你可能要问了,HTTP 的传输速度也不算差啊,而且还有更好的 HTTP/2,为什么还要再有一个额外的 CDN 来加速呢?是不是有点“多此一举”呢?
这里我们就必须要考虑现实中会遇到的问题了。你一定知道,光速是有限的,虽然每秒 30 万公里,但这只是真空中的上限,在实际的电缆、光缆中的速度会下降到原本的三分之二左右,也就是 20 万公里 / 秒,这样一来,地理位置的距离导致的传输延迟就会变得比较明显了。
比如,北京到广州直线距离大约是 2000 公里,按照刚才的 20 万公里 / 秒来算的话,发送一个请求单程就要 10 毫秒,往返要 20 毫秒,即使什么都不干,这个“硬性”的时延也是躲不过的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

CDN技术的发展已有二十多年的历史,最初只能加速静态资源,但随着Web 2.0、HTTPS、视频、直播等新技术的兴起,CDN不断进步,增加了SSL加速、内容优化、资源防盗链、WAF安全防护等新功能。CDN构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速。CDN的缓存系统是其关键组成部分,通过命中率和回源率衡量服务质量,而高性能的缓存服务和存储系统的优化是提高命中率、降低回源率的关键。CDN已不再是简单的“搬运工”,而更像是一个“无微不至”的“网站保姆”,让网站只需专注于生产优质内容,其他“杂事”由CDN代劳。 CDN技术的发展使得网站访问速度得到提高,用户体验得到改善,而CDN也在不断演进,适应新技术、新业务的发展。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《透视 HTTP 协议》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(24)

  • 最新
  • 精选
  • -W.LI-
    1.自建成本太高,一般的公司玩不起 2.cache-control允许缓存的动态资源可以被CDN缓存。不允许缓存的动态资源会回源,虽然老师课上没讲,感觉回源的路径会被优化。

    作者回复: 1.对 2.cdn一般有专用的高速网络直连源站,或者是动态路径优化,所以动态资源回源要比通过公网速度快很多。

    2019-08-21
    3
    30
  • 前端西瓜哥
    如果请求的是动态资源,走 CDN 貌似会更慢(因为无法缓存,CDN到源站多了握手过程)? 我想到两个方案: (1)静态资源都放到一个域名里,然后这个域名使用 CDN 缓存加速。动态资源则使用另一个域名,不进行 CDN 缓存,直接访问源站。 (2)让动态资源也走 CDN,像老师说的那样, CDN 有高速网络直连源站,速度也能提高,但这里貌似也是会有不少带宽支出。 我想知道实际中,请求动态资源具体到底是怎么考虑,一般使用什么方案?

    作者回复: 现在cdn有种叫“边缘计算”的技术,就是把计算动态资源的代码和数据也放在cdn的节点上,这样就可以在cdn里获取动态资源不用回源站了。 cdn与源站通常都有专网连接,所以走cdn也比走公网快。

    2019-08-23
    5
    21
  • book尾汁
    1 是的自建成本很高 2 虽然是动态资源会回源,但是用户通过GSLB得到的边缘节点的ip也是离用户较近的,边缘节点到中心 中心节点到源站的网络也是很快的,综合来说还是要比用户直接访问快点。支持动态加速的CDN就更快了,直接规划出一条到源站的最优路径

    作者回复: 说的很好。

    2019-11-04
    8
  • 苦行僧
    我们公司就是生产大量视频 每天几T视频 不用cdn成本可想而知 不过每次招标换厂家都涉及视频搬迁

    作者回复: 在视频、直播领域cdn非常有用。

    2019-08-28
    7
  • magicnum
    CDN不仅有专线,还可以进行边缘计算。

    作者回复: 对

    2019-08-22
    4
  • 许童童
    网站也可以自建同城、异地多处机房,构建集群来提高服务能力,为什么非要选择 CDN 呢? 确实可以,不过建大了,就成了一个CDN。 对于无法缓存的动态资源,你觉得 CDN 也能有加速效果吗? 也有加速效果,不过要注意设置好缓存过期时间,不宜太长。如果不设缓存,内容由CDN回源去源站拉取,链路上专用网络可能快一些。对于缓存不可接受的业务,最好就不要用CDN了。

    作者回复: great。

    2019-08-21
    3
  • 佳佳大魔王
    问题一,我觉得会造成数据同步困难的问题,另外在网站更新的时候,消耗的资源也比较多

    作者回复: 对,自己搭建机房费时费力费钱费人工,对于一般的中小型网站来说性价比不高,cdn是专门做这个的,交给他们做效果会更好。

    2019-08-21
    2
    3
  • 1:网站也可以自建同城、异地多处机房,构建集群来提高服务能力,为什么非要选择 CDN 呢? 钱决定的,成本收益比导致选择CDN,假如自建更省钱那一定会选择自建。首先,小公司自建不起,没有这么多人力、财力、技术,用多少买多少多香。大公司觉得自建更好,此时就变成了使用自己的CDN。 2:对于无法缓存的动态资源,你觉得 CDN 也能有加速效果吗? 无法缓存的资源,只能回源获取,正好能够利用CDN与源服务器之间的高速通道(看评论才知道),也能起到加速的效果吧! 话说什么动态资源不能够缓存?自建机房,异地多机房不是什么都有了嘛?只是又引入了一致性问题。

    作者回复: 回答的很好。 动态资源的关键在于它的实时性,如果缓存可能会导致数据不一致,比如账户余额。 如果实时性要求低,那么就可以缓存较短的时间。

    2020-04-05
    2
  • ifelse
    学习了,干货满满

    作者回复: good

    2023-02-07归属地:浙江
    1
  • 现实中为了减少回源率,降低宽带费用,一般cdn厂商也会提供伪源,那云厂商是怎么解决这个回源问题的呢?

    作者回复: 你说的这个“伪源”可能就是cdn的一级节点吧,二级节点不直接访问源站,而是访问cdn内部的一级节点,而一级节点就充当了源站。

    2019-08-21
    2
    1
收起评论
显示
设置
留言
24
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部