HTTP/2如何开启_HTTP/2的特性_HTTP/2的优缺点
本篇介绍了HTTP/2的由来、如何开启、它的特性与优缺点
HTTP/2的由来
HTTP/2 工作组决定 HTTP 协议不再使用小版本号(minor version),只使用大版本号(major version),从今往后 HTTP 协议不会出现 HTTP/2.0、2.1,只会有“HTTP/2”“HTTP/3”
HTTP/2的特性
- 兼容 HTTP/1:语义层不动,与HTTP/1完全一致,所以基于HTTP的上层应用不需要修改,就可以无缝转换到HTTP/2
- 头部压缩:开发了专门的“HPACK”算法,可以达到50%~90%的高压缩率
- 二进制格式:它把 TCP 协议的部分特性挪到了应用层,把原来的“Header+Body”的消息“打散”为数个小片的二进制“帧”(Frame),用“HEADERS”帧存放头数据、“DATA”帧存放实体数据
- 流的概念:HTTP/2在一个TCP连接上用“流”同时发送多个“碎片化”的消息,是常说的“多路复用”
- 强化安全:限制下层通信协议必须在TLS1.2以上,将几百个弱密码套件列入黑名单
- 协议栈:HTTP/2是建立在“HPack”“Stream”“TLS1.2+”基础之上的
HTTP/2 的优点
兼容性高、更佳安全、压缩流量、跑满宽带
HTTP/2 的缺点
如果网络质量差,传输速度会因为重传而降低、IP地址切换时下层的TCP协议必须重连
HTTP/2 的注意点
HTTP/2的前端优化例如精灵图(Spriting)、资源内联(inlining)、域名分片(Sharding)等会造成反效果。因为HTTP/2中使用小颗粒化的资源,优化了缓存,而使用精灵图就相当于传输大文件,但是大文件会延迟客户端的处理执行,并且缓存失效的开销很昂贵,很少数量的数据更新就会使整个精灵图失效,需要重新下载。
如何检测开启了HTTP/2
在控制台输入window.chrome.loadTimes(),查看返回的对象,如果connectionInfo返回的是h2就是HTTP/2