透视HTTP协议
罗剑锋(Chrono)
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
立即订阅
6077 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|To Be a HTTP Hero
免费
破冰篇 (7讲)
01 | 时势与英雄:HTTP的前世今生
02 | HTTP是什么?HTTP又不是什么?
03 | HTTP世界全览(上):与HTTP相关的各种概念
04 | HTTP世界全览(下):与HTTP相关的各种协议
05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?
06 | 域名里有哪些门道?
07 | 自己动手,搭建HTTP实验环境
基础篇 (7讲)
08 | 键入网址再按下回车,后面究竟发生了什么?
09 | HTTP报文是什么样子的?
10 | 应该如何理解请求方法?
11 | 你能写出正确的网址吗?
12 | 响应状态码该怎么用?
13 | HTTP有哪些特点?
14 | HTTP有哪些优点?又有哪些缺点?
进阶篇 (8讲)
15 | 海纳百川:HTTP的实体数据
16 | 把大象装进冰箱:HTTP传输大文件的方法
17 | 排队也要讲效率:HTTP的连接管理
18 | 四通八达:HTTP的重定向和跳转
19 | 让我知道你是谁:HTTP的Cookie机制
20 | 生鲜速递:HTTP的缓存控制
21 | 良心中间商:HTTP的代理服务
22 | 冷链周转:HTTP的缓存代理
安全篇 (7讲)
23 | HTTPS是什么?SSL/TLS又是什么?
24 | 固若金汤的根本(上):对称加密与非对称加密
25 | 固若金汤的根本(下):数字签名与证书
26 | 信任始于握手:TLS1.2连接过程解析
27 | 更好更快的握手:TLS1.3特性解析
28 | 连接太慢该怎么办:HTTPS的优化
29 | 我应该迁移到HTTPS吗?
飞翔篇 (4讲)
30 | 时代之风(上):HTTP/2特性概览
31 | 时代之风(下):HTTP/2内核剖析
32 | 未来之路:HTTP/3展望
33 | 我应该迁移到HTTP/2吗?
探索篇 (5讲)
34 | Nginx:高性能的Web服务器
35 | OpenResty:更灵活的Web服务器
36 | WAF:保护我们的网络服务
37 | CDN:加速我们的网络服务
38 | WebSocket:沙盒里的TCP
总结篇 (2讲)
39 | HTTP性能优化面面观(上)
40 | HTTP性能优化面面观(下)
答疑篇 (2讲)
41 | Linux/Mac实验环境搭建与URI查询参数
42 | DHE/ECDHE算法的原理
结束语 (1讲)
结束语 | 做兴趣使然的Hero
透视HTTP协议
登录|注册

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

Chrono 2019-08-21
在正式开讲前,我们先来看看到现在为止 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《透视HTTP协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

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

    作者回复:
    1.对

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

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

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

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

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

    2019-08-28
    1
  • Fstar
    如果请求的是动态资源,走 CDN 貌似会更慢(因为无法缓存,CDN到源站多了握手过程)?

    我想到两个方案:
    (1)静态资源都放到一个域名里,然后这个域名使用 CDN 缓存加速。动态资源则使用另一个域名,不进行 CDN 缓存,直接访问源站。
    (2)让动态资源也走 CDN,像老师说的那样, CDN 有高速网络直连源站,速度也能提高,但这里貌似也是会有不少带宽支出。

    我想知道实际中,请求动态资源具体到底是怎么考虑,一般使用什么方案?

    作者回复: 现在cdn有种叫“边缘计算”的技术,就是把计算动态资源的代码和数据也放在cdn的节点上,这样就可以在cdn里获取动态资源不用回源站了。

    cdn与源站通常都有专网连接,所以走cdn也比走公网快。

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

    作者回复: 对

    2019-08-22
    1
  • 许童童
    网站也可以自建同城、异地多处机房,构建集群来提高服务能力,为什么非要选择 CDN 呢?
    确实可以,不过建大了,就成了一个CDN。

    对于无法缓存的动态资源,你觉得 CDN 也能有加速效果吗?
    也有加速效果,不过要注意设置好缓存过期时间,不宜太长。如果不设缓存,内容由CDN回源去源站拉取,链路上专用网络可能快一些。对于缓存不可接受的业务,最好就不要用CDN了。

    作者回复: great。

    2019-08-21
    1
  • 现实中为了减少回源率,降低宽带费用,一般cdn厂商也会提供伪源,那云厂商是怎么解决这个回源问题的呢?

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

    2019-08-21
    1
    1
  • 徐海浪
    1.网站也可以自建同城、异地多处机房,构建集群来提高服务能力,为什么非要选择 CDN 呢?
    因为CDN有大量边缘节点,网站只需要专注于自身业务,无需关心早专业的CDN复杂调度逻辑。
    2.对于无法缓存的动态资源,你觉得 CDN 也能有加速效果吗?
    有一定的效果,因为动态资源可以走cdn专线回源。

    作者回复: very good。

    2019-08-21
    1
  • 闫飞
    TB级别的硬盘看起来也不是特别高端厉害的样子,因为普通的PC机也标配TB级SATA盘或者512GB SSD了吧。我猜CDN厂商是不是需要用专有的服务器硬盘保证比较长的服务寿命,还是大家就到市面上买买普通的硬盘挂上去就用了?

    作者回复: 家用级别和企业级别的硬盘还是有区别的,用于服务器的硬盘质量肯定会更高一些。

    2019-08-21
    2
    1
  • 佳佳大魔王
    问题二,文章指出了如果动态资源指定了 Cache-Control 那么也可以在很短时间内缓存
    我觉得在这种情况比较有用:打开一个网站,打到一半的时候关闭,此时服务器已经开始了运算,当我们在很短时间内再次打开相同的网站时,很快就进入了

    作者回复: 是的,这些数据已经下载到了本地,而且依然在有效期,那么就不用再次向服务器请求,可以直接在本地获取。

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

    作者回复: 说的很好。

    2019-11-04
  • lfn
    2019-10-05 打卡。

    作者回复: 加油。

    2019-10-05
  • moooofly
    关于国内,国外 CDN 选型不知道有何建议和推荐?之前了解过 aws 的 cloudfront ,网宿和阿里云 CDN,公司实际使用情况,国外部分用了 cloudfront ,国内上了网宿,后面打算国内外都用网速,而阿里云也一致在考虑之内

    作者回复: cdn主要看价格和服务保障能力,很多厂商都提供试用,需要结合公司最关注的指标去评估,没有一个完美的cdn。

    2019-09-02
  • Carson
    1.自建多地业务源站,花费的人力,物力,财力要比使用cdn都多不止多少倍,我猜cdn当时就是这么产生的
    2.动态资源cdn缓存没有问题,关键是要控制好缓存时间和业务调用逻辑,别张三访问命中了李四的信息了

    作者回复:
    1.对

    2.能缓存的动态资源就是静态资源,只是缓存时间短而已。

    3.有的动态资源是不允许缓存的,所以只能走cdn动态路由优化或者边缘计算。

    2019-08-24
  • 我行我素
    1.成本问题还有维护问题,既然已有现成的何必自找麻烦
    2.感觉可以优化访问的线路

    作者回复: 对。

    2019-08-21
  • 夜空中最亮的星(华仔)
    老师,我又回来啦,😄

    作者回复: welcome back。

    2019-08-21
收起评论
16
返回
顶部