关于HTTP/2你应该知道的知识 百度云CDN已默认开启

news/2024/7/7 21:44:21 标签: 网络, java, http, nginx, https

HTTP/2已经推出几年,由于有效提高网络的利用率,受到业内追捧。百度CDN已经支持HTTP/2协议,默认开启HTTP/2。用户可通过百度云CDN API或CDN控制台开启HTTPS配置,添加HTTPS配置,配置成功后便可使用HTTP/2。HTTP/2是HTTP 1.1协议的升级版,原则上它可以支持HTTPS和非HTTPS,但是现在主流浏览器都只支持基于TLS部署的HTTP/2协议,故需要先支持HTTPS。

有什么问题可以微信公众号留言,我们工程师随时为您解答。

那么,我们来了解一点背景知识,什么是HTTP/2,为什么使用?

什么是HTTP/2 ?

HTTP/2是HTTP的新版本,由IETF于2015年5月以 RFC 7540正式发表。它主要基于SPDY协议,在请求方式、状态码、URI和多数HTTP Header字段都和HTTP/1.1 保持高度兼容,并在此基础上有下述优化,提高浏览器的页面加载速度、减少网络延迟:

  • 单个长连接:单一页面可一直复用一个连接,无需新建连接,可创建多个TCP连接导致的时延,提高吞吐量。

  • 多路复用:在单个连接中,多个请求或响应可同时存在于多个独立的stream上,避免HOL堵塞(Head of Line Blocking)。

  • 优先级排序:对请求标记依赖层级,相同层级支持对请求和响应按优先级排序,Server可依次排序填充数据,提高特定请求的响应速度。

  • 头部压缩和二进制编码:HTTP/2新引入HPACK算法,用于对HTTP头部做压缩,以减少头部数据的传输。此外,HTTP头部使用二进制编码进行传输,替代HTTP/1.x中的纯文本。

  • 服务器推送:服务端向客户端发送比客户端请求更多的数据,即允许服务器直接提供浏览器渲染页面所需资源,无需浏览器收到或解析页面后再提起一轮请求,节约加载时间。

  • SSL加密:主流浏览器支持的HTTP/2均基于SSL加密,在保证性能的前提下使网站更安全。在ALPN的支持下,客户端可以主动选择使用HTTP/2还是HTTP/1.1,提高兼容性。

1.单个长链接

HTTP/2连接包含三个元素:Messages,Streams,Frames。

  • Message:请求或响应消息,由帧(Frame)组成。

  • Stream:全双工的信息渠道,一个连接可有多个streams,不同stream可混合在连接中传输并由ID区分。

  • Frames:发送message的单元,每个frame有一个头部,用以记录其所属stream和message。在一个stream请求或响应的传输中,不同message的frame可以混合在一起。

HTTP/2 的传输过程如下图

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9wV2prRFA3YWhZa05wc3ZJaWJ4c3IwT0NRaWMzclVjM2liM2ljanJiTTJSWFZTcndnNlhWcXg3RGhwSlg1RG5pYWlhdnV1WE9tWmw2eU5mdEJQalhyNzNNU3VIdy8w?x-oss-process=image/format,png" />

2.多路复用

HTTP/2支持多路复用,可更高效地处理等待中的请求或响应。HTTP/2只需创建一个连接,且多个请求和响应可并发交替发送。HTTP/2 HTTP/1.1和HTTP/2的页面加载过程比较如下:

HTTP/1.1

HTTP/2

创建6-8个连接

创建1个连接

请求HTML页面

请求HTML页面

接收HTML页面

接收HTML页面

解码HTML页面

解码HTML页面

请求HTML页面中开始的6-8个文件,没有优先级或者依赖

请求HTML页面中的所有文件,按优先级和依赖关系返回

每个连接等待响应返回

一个连接所有响应并发交替返回

在空闲的连接上执行后序请求

-

剩余文件重复6-7次

-

关闭6个连接

关闭1个连接

3.头部压缩与二进制编码

HTTP/2根据HPACK标准,使用霍夫曼编码压缩头部。

HPACK标准中,每一个头部域和常用的值保存在一个固定表中,并对应了一个索引值。

头部开始传输时,使用固定表中的索引值来代替文本串;当头部继续传输时,新的头部域出现,动态表被建立,并且在stream中共享。

HPACK的使用如下图所示:

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9wV2prRFA3YWhZa05wc3ZJaWJ4c3IwT0NRaWMzclVjM2liM010YUhlRlNCa0dBR21XYzlORU1pYWdtMk9pY25ES3pjMGttelJRRFFsS3ZnNmc1VUEyaWFFaWFJaGcvMA?x-oss-process=image/format,png" />

首先,固定表中头部域,比如:method GET(索引2)。随着请求继续,"user-agent Mozilla/5.0"添加到动态表中 (索引62),压缩后的头部使用索引2和62来代替长的文本串。客户端头部的压缩率高于50%时,服务端则高于90%。

4.优先级

HTTP/2 stream有优先级比重,从1(最低)到256(最高),而且任何一个stream可以依赖其他的stream。优先级决定了客户端请求和服务端响应的顺序。

在普通场景中,CSS和JS文件比图片有更高的优先级,这样可以让浏览器更快下载这些文件,并更早执行,减少页面显示的延迟。

"优先级树"可用以表示依赖层级和优先级比重,服务端可根据优先级来使用CPU、内存和带宽等资源。

https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9wV2prRFA3YWhZa05wc3ZJaWJ4c3IwT0NRaWMzclVjM2liMzljWlR2NFFNd3lFaWNyV0ZsZDR4Q2licmdwN1pwcFNaYUduYmljN29Jck1NaWFYUGljbnZORkMxYjV3LzA?x-oss-process=image/format,png" />

上图中,以最后一个较复杂的例子来说,stream D最优先处理,其次处理stream E和stream C,最后处理stream A和stream B。在第三层的处理过程中,相比stream B,stream A可以获取3/4的资源。

多路复用和优先级,可以更高效地并行处理请求。HTTP/2更不容易受高负载的请求所影响,比如SSL加密处理大文件或者视频流,在保证安全的情况尽量使性能不受影响。

5. SSL加密

主流浏览器(例如Chrome, Firefox, Safari, Opera, IE, Edge等)均只支持SSL加密的HTTP/2,而且许多访问量高的网站已经使用了SSL。

新连接的SSL握手消耗比较大,每次都需要Key的计算和交换,比如RSA 2k公钥、私钥对。HTTP/2只需要一个连接,这样可减少SSL握手次数,即减少SSL消耗。

为什么使用HTTP/2 ?

HTTP/2允许在同一连接上交替发送请求和响应消息,使用高效率的编码HTTP Header字段,可对请求定义优先级、快速响应更重要的请求。此协议减少了TCP连接的建立,与其他流更少的竞争和更长时间的链接,可有效提高网络容量的利用率。

  • 高效:头部压缩和二进制编码提高了请求和响应的效率,多路复用可避免HOL堵塞

  • 灵活:通过定义请求的优先级,可以快速获取更重要的响应请求

  • 快速:服务器推送可预先获得服务器推送至客户端的资源,提高网页加载速度

  • 安全:主流浏览器均支持基于TLS加密的HTTP/2协议,保证客户网站的安全性

https://imgconvert.csdnimg.cn/aHR0cDovL21tYml6LnFwaWMuY24vbW1iaXpfanBnL3BXamtEUDdhaFlrTnBzdklpYnhzcjBPQ1FpYzNyVWMzaWIzSURlM3pBaWJpYmtBcGhvVEdIemZKU0FFR1Ixc1loNDFVRDg1d2I5UHZ6MmFYbERKdUxJVnNpYjdBLzA?x-oss-process=image/format,png" width="100%" />

百度云

微信:baidu_cloud

https://imgconvert.csdnimg.cn/aHR0cDovL21tYml6LnFwaWMuY24vbW1iaXpfanBnL3BXamtEUDdhaFlrTnBzdklpYnhzcjBPQ1FpYzNyVWMzaWIzWUFqbEFzeGdpYXExTXhYTEZzbEtXZnY5TlNJQjZiTjJvdkhmY3VpYkZGUTFVU0FoU2VsQmpOaWJ3LzA?x-oss-process=image/format,png" />

https://cloud.baidu.com

长按二维码关注

https://imgconvert.csdnimg.cn/aHR0cDovL21tYml6LnFwaWMuY24vbW1iaXpfZ2lmL3BXamtEUDdhaFlrTnBzdklpYnhzcjBPQ1FpYzNyVWMzaWIzNXJtcmlhUUtkUGljTDNJMXVBSEttanYzcG95cGRwYVBJb05IRzZKbklqdWtpYXRheHZIN243TWljUS8w?x-oss-process=image/format,png" />

请点击“阅读原文”,立即购买


http://www.niftyadmin.cn/n/1606673.html

相关文章

智慧互娱∣2017百度云互娱行业论坛精彩回顾

当游戏数量逐渐增加,同质化越来越严重时,游戏团队该如何在游戏行业脱颖而出?2017年11月10日,在“智慧互娱”2017百度云互娱行业论坛上,百度云产品专家与游戏行业来宾共同探讨游戏行业的数字营销问题。首先百度云副总经…

[讨论]中医英语语料库知多少?

http://www.corpus4u.org/archive/index.php/t-1041.html 语料库语言学在线 [corpus4u.org] > 理论探讨 > 语料库与语言研究 > [讨论]中医英语语料库知多少? -------------------------------------------------------------------------------- PDA 查看完…

电玩设计无孔不入:摇杆造型、可发声的电灯开关

喜欢电玩的朋友可以关注一下,近期有厂商开发出一款游戏摇杆造型开关,售价为29.99美元,使用在房间的电路控制中。也就是说,这款开关将传统“按下”的操作方式,改为了类似游戏操作中摇杆的“拨动”方式,另外当…

百度世界大会最全官方回顾:今天,百度更懂你!

百度百度无人驾驶汽车最快将于2018年实现量产。百度Apollo疲劳驾驶监测系统问世。手机百度累计激活用户20亿,信息流日阅读量月复合增长36%,短视频日阅读量月复合增长38%。未来,百度AI将帮助爱奇艺攀上更高的高峰。百度发布第一款智能硬件产品…

银联将启用双免交易白名单核验功能 移机或无法定位的POS要关停

侯维科技近日,银联业管委发布《关于进一步加强银联网络特约商户和受理终端管理的通知》,要求各收单成员机构严格落实商户实名制与受理终端一致性。《通知》要求收单成员机构应严格审核商户资料,采取有效措施核实商户经营真实性与合法性。按照…

干货| 你想要了解的百度云ABC一体机所有的问题都在这里

自从百度云发布ABC一体机之后,引来无数猜测和遐想。这里把相关的问题全部整理在这里,你就知道百度云ABC是什么,有什么能力,该怎么用。顺便八卦一下,为什么叫百度云ABC,难道我们要从ABC做起?不不…

惠普和戴尔能否成功效仿苹果的垂直整合模式?

【编者按】本文作者Mark Sigal 是一个连续创业者,有过八次创业经历,他创办的公司出售给了苹果、IBM和英特尔。他现在是电子书和eLearning 平台提供商Unicorn 实验室的首席产品官。 曾经一度,惠普和戴尔曾堪称PC的代名词,但笼罩在它…

100万度节能之后,我们还能做什么?

还记得今年7月坐标北京的“百度科技园智能楼宇”的案例吗?当时的实地数据表明,相比原有的运行方式,智能楼宇新系统上线后降低能耗预计达到20%以上,2017年节电预期超过100万度。100万度是什么概念?如果按照一个普通家庭…