网站首页 > 开源技术 正文
摘要: 本文由阿里视频云高级技术专家空见撰写,主要介绍HTTP2.0的历史、特性、如何使用和使用之后的性能对比验证。
背景介绍
要了解HTTP2.0,先了解一下HTTP超文本传输协议的历史(HyperText Transfer Protocol),这是为了实现互联网上内容传输提出的协议,其历史伴随着互联网的发展。整个HTTP协议发展历程如下:
一句话介绍:
HTTP 0.9:基于GET请求的文本传输协议
HTTPS:安全的HTTP传输协议
HTTP 1.0:增加HTTP头、扩展PUT、POST等方法
HTTP 1.1:长连接、流水线支持,最广泛使用的HTTP传输协议
SPDY:针对HTTP的增强,工作在SSL层之上、HTTP层之下
HTTP 2.0:安全高效的下一代HTTP传输协议
根据W3Techs统计,到现在为止,互联网上前1000万的网站,已经有27.9%支持了HTTP2.0。
HTTP2.0的特性
内容安全(Security),因为HTTP2.0是基于HTTPS的,天然具有安全特性,通过HTTP2.0的特性可以避免单纯使用HTTPS的性能下降。
二进制格式(Binary Support),HTTP1.x的解析是基于文本。HTTP 2.0将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式编码,基于二进制可以让协议有更多的扩展性,比如引入了帧来传输数据和指令。
多路复用(MultiPlexing),这个功能相当于是长连接的增强,每个request可以随机的混杂在一起,接收方可以根据request的id将request再归属到各自不同的服务端请求里面。另外多路复用中,也支持了流的优先级(Stream dependencies),允许客户端告诉server哪些内容是更优先级的资源,可以优先传输。
Header压缩(Header compression),HTTP请求中header带有大量信息,而且每次都要重复发送,HTTP2.0使用编解码来header的传输,通讯双方各自cache一份header fields表,减少header的开销。
服务端推送(Server push),同SPDY一样,HTTP2.0也具有server push功能。目前,有大多数网站已经启用HTTP2.0,如淘宝 利用chrome控制台可以查看是否启用HTTP2.0:chrome://net-internals/#http2 可以看到当前页面使用HTTP2.0的情况:
如何使用HTTP2.0
目前阿里云CDN已经全面支持HTTP2.0,大部分主流浏览器也已经支持该功能,但是需要服务端改造后才能使用,不过如果你使用了阿里云CDN,源站即便不支持也能够享受HTTP2.0的特性,目前在官网可以自助开启:
1、 开启HTTPS证书 因为HTTP2.0是依赖于HTTPS的,在控制台开启HTTP2.0需要提前开启HTTPS,目前阿里云CDN已经支持免费证书功能,提前打开该功能即可:
2、 开启HTTP2.0功能:
性能对比验证
目前我们提供了一个对比测试工具,可以比较直观的看出来HTTP1.1和HTTP2.0的加载页面的差异,针对180个小图片,HTTP2.0显示了强大的优势,而且越是弱网环境,其加速效果就更明显:
小伙伴也可以通过下面页面,自己体验本地使用HTTP2.0和HTTP1.1的对比效果
HTTP2.0和SPDY的关系
SPDY是Google提出的用来解决老的HTTP协议不足的一些新的方案,可以说是综合了HTTPS和HTTP两者优点并加以改进的传输协议。实践证明SPDY解决了HTTP的一些顽疾,在性能上提升显著,最终IETF(Internet Enginerring Task Force)正式考虑制定HTTP2.0的计划,最后决定以SPDY为基础起草HTTP2.0,SPDY的部分设计人员也被邀请参与了HTTP2.0的设计。
Google的测试表明,页面加载时间相比于HTTP1.x减少了64%:
作者:樰篱
- 上一篇: 超实用!手把手教你如何3步进行Web渗透测试!
- 下一篇: Web 加速,协议先行!(html加速器)
猜你喜欢
- 2024-09-11 一文读懂 HTTP/1、HTTP/2、HTTP/3
- 2024-09-11 云端的SRE发展与实践(云端怎么理解)
- 2024-09-11 用 Go 重构 C 语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
- 2024-09-11 HTTP 3的前世今生及尝鲜(http3为什么比http2靠谱)
- 2024-09-11 HTTP/2是个啥东西?(柴油移动泵车是个啥东西)
- 2024-09-11 提升网站性能开发的10个技巧(如何提高网站的优化速度)
- 2024-09-11 千亿级流量来袭,如何用硬件加速技术为CPU减负?
- 2024-09-11 谷歌搜索即将启用HTTP/2 方式抓取网页内容
- 2024-09-11 HTTP跳槽涨薪篇,通俗易懂~(跳槽一次涨薪多少合适)
- 2024-09-11 什么是队头阻塞?(队列队头队尾是哪里)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)