HTTP2 特点:

1.加密

默认就用TLS加密

2.二进制传输

http2是一个二进制协议。

http2发送二进制帧。帧的类型有很多种,但他们都有如下的公共字段:

Type, Length, Flags, Steam Identifier和frame payload

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/34247042-bb5d-4cfc-8824-35f55fda8c5d/Untitled.png

3.多路复用

帧是最小的数据单位,每个帧会标识出该帧属于哪个流,流是多个帧组成的数据流。

多路复用,即在一个TCP连接中存在多个流,即可以同时发送多个请求,对端可以通过帧中的表示知道该帧属于哪个请求。在客户端,这些帧乱序发送,到对端后再根据每个帧首部的流标识符重新组装。通过该技术,可以避免HTTP旧版本的队头阻塞问题,极大提高传输性能。

4.头压缩

HPACK,HTTP/2头部压缩

5.服务器PUSH

服务器推送需要客户端显式的允许服务器提供该功能。但即使如此,客户端依然能自主选择是否需要中断该推送的流。如果不需要的话,客户端可以通过发送一个RST_STREAM帧来中止。