2.3. http2协议
HTTP2 引入了一下的三个新概念:
Stream: 已经建立连接的双向字节流,用唯一 ID 标示,可以传输一个或多个消息.
Message: 逻辑上的 HTTP 消息,请求或者响应,可以包含多个 frame.
Frame: HTTP2 通信的最小单位,二进制头封装,封装 HTTP 头部或 body
HTTP2 是把一个 HTTP 数据包分成多个帧发送,每个帧有一个二进制头,并把 HTTP 分成多个独立小帧,多个帧组成一个 Message 在流中发送。不同流的帧有可能交错到达,帧的报文头中标示了属于哪一个流。
+-----------------------------------------------+
| Length (24) |
+---------------+---------------+---------------+
| Type (8) | Flags (8) |
+-+-------------+---------------+-------------------------------+
|R| Stream Identifier (31) |
+=+=============================================================+
| Frame Payload (0...) ...
+---------------------------------------------------------------+
帧头为固定的 9 个字节((24+8+8+1+31)/8=9)呈现,变化的为帧的负载 (payload),负载内容是由帧类型(Type)定义。
HTTP2 有以下十种帧类型
反馈和交流请加群组:QQ 群 373278915。