HTTP/2 帧

namelengthdescription
Length3byte表示帧负载的长度(取值范围 2^14 ~ 2^24-1)。请注意,2^14字节是默认的最大帧大小,如果需要更大的帧,必须在SETTINGS帧中设置
(16,384 ~ 16,777,216)
Type1byte当前帧类型
Flags1byte具体帧类型的标识
R1bit保留位,不要设置,否则可能带来严重后果
StreamIdentifier31bit每个流的唯一ID
Frame Payload~真实的帧内容,长度是在Length字段中设置的

HTTP/2 帧类型

nameiddescription
DATA0x0传输流的核心内容
HEADERS0x1包含HTTP首部,和可选的优先级参数
PRIORITY0x2指示或者更改流的优先级和依赖
RST_STREAM0x3允许一端停止流(通常由于错误导致的)
SETTINGS0x4协商连接级参数
PUSH_PROMISE0x5提示客户端,服务器要推送些东西
PING0x6测试连接可用性和往返时延(RTT)
GOAWAY0x7告诉另一端,当前端已结束
WINDOW_UPDATE0x8协商一端将要接收多少字节(用于流量控制)
CONTINUATION0x9用以扩展HEADER数据块