🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**HTTP/2 改变了什么?带来了哪些提升?** HTTP/1.x 公认最大的性能瓶颈就是 TCP 连接数过多。建立一个 TCP 连接需要三次握手,也就是三次往返于服务器和客户端之间。三次握手所需的时间无法用提升带宽来弥补。而现在的网页一般都内容丰富,在 HTTP/1.x 下载完整个网页一般需要很多很多个 TCP 连接。如果用开发者工具查看网络加载流,可以看到阻塞时间(也叫做 Time To First Byte,[参考文献](https://www.nginx.com/http2-ebook/ "High Performance Browser Network Special Edition: Selected Content For HTTP2")),尤其是小资源的阻塞时间占比非常大。此外,每次 TCP 连接都需要传递 HTTP Header 信息,也是一笔带宽开销。这还不够,HTTP/1.x 由于基本是无脑按顺序加载资源,需要浏览器和前端工程师对预加载、加载优先级等做很多额外的工作。 [![](https://box.kancloud.cn/2015-12-18_56740bdf6b3df.jpg)](http://www.bokeyy.com/wp-content/uploads/2015/12/d811a507-3599-4630-9add-bbf6e2ec8fa2.jpg) HTTP/1.x 协议下绿色的阻塞时间延迟可观 而 HTTP/2 解决了这个问题。相比之下,HTTP/2 一方面复用同一IP且同一证书下的一个 TCP 连接,另一方面压缩了 HTTP Header,最后还提供了 Server Push 特性,解决了这些问题。 更多可翻阅 [HTTPS、SPDY和HTTP/2的性能比较](http://www.infoq.com/cn/news/2015/02/https-spdy-http2-comparison) [某个TCP连接数非常多的网页性能实测比较](http://www.webpagetest.org/video/compare.php?tests=150324_RB_60944f6da93253f7ecb9148584ebee11,150324_MR_b218a2ade1b90e679a525964061ef7b6)。