HTTP1.1 升级到 HTTP2

1. 改进持久连接

HTTP/1.0每进行一次HTTP通信,都需要经历建立TCP连接、传输HTTP数据和断开TCP连接三个阶段(如下图)。

http1

前端性能优化篇_TCP

 http1.1之后

前端性能优化篇_TCP_02

 从上图可以看出,HTTP的持久连接可以有效减少TCP建立连接和断开连接的次数,这样的好处是减少了服务器额外的负担,并提升整体HTTP的请求时间。

2. 头部压缩

前端性能优化篇_前端_03

  • 维护一份相同的静态字典,包含常见的头部名称,以及常见的头部名称和值的组合
  • 维护一份相同的动态字典,可以动态的添加内容
  • 通过静态Huffman编码对传输的首部字段进行编码

3 二进制分帧层

在二进制分帧层上,HTTP 2.0 会将所有传输的信息分割为更小的消息和帧,并对它们采用二进制格式的编码 ,其中HTTP1.x的首部信息会被封装到Headers帧,而我们的request body则封装到Data帧里面。

前端性能优化篇_性能优化_04

演示demo

​HTTP/2: the Future of the Internet | Akamai​

nodejs 支持 http2

​http2 超文本传输协议2.0 | Node.js API 文档​