跳到主要内容

6. Frame Definitions

本节定义 HTTP/2 使用的所有 frame types.

Frame Types​

Frame TypeCode描述
DATA0x0传递任意的可变长度 octet 序列
HEADERS0x1打开一个 stream, 并携带 header block fragment
PRIORITY0x2指定 sender 建议的 stream priority
RST_STREAM0x3立即终止一个 stream
SETTINGS0x4传递 configuration parameters
PUSH_PROMISE0x5通知 peer sender 准备发起 stream
PING0x6用于测量 round-trip time 的机制
GOAWAY0x7发起 connection 关闭
WINDOW_UPDATE0x8实现 flow control
CONTINUATION0x9延续 header block fragments 序列

6.1 DATA​

DATA frames 传递与某个 stream 关联的任意可变长度 octet 序列.

6.2 HEADERS​

HEADERS frames 用于打开一个 stream, 并携带 header block fragment.

6.3 PRIORITY​

PRIORITY frames 指定 sender 建议的 stream priority.

6.4 RST_STREAM​

RST_STREAM frames 允许立即终止一个 stream.

6.5 SETTINGS​

SETTINGS frames 传递会影响 endpoints 如何通信的 configuration parameters.

SETTINGS Parameters:

  • SETTINGS_HEADER_TABLE_SIZE (0x1)
  • SETTINGS_ENABLE_PUSH (0x2)
  • SETTINGS_MAX_CONCURRENT_STREAMS (0x3)
  • SETTINGS_INITIAL_WINDOW_SIZE (0x4)
  • SETTINGS_MAX_FRAME_SIZE (0x5)
  • SETTINGS_MAX_HEADER_LIST_SIZE (0x6)

6.6 PUSH_PROMISE​

PUSH_PROMISE frames 用于通知 peer sender 打算发起一个 stream.

6.7 PING​

PING frames 是一种从 sender 角度测量最小 round-trip time 的机制.

6.8 GOAWAY​

GOAWAY frame 用于发起 connection 关闭, 或表示严重的 error conditions.

6.9 WINDOW_UPDATE​

WINDOW_UPDATE frame 用于实现 flow control.

6.10 CONTINUATION​

CONTINUATION frames 用于延续 header block fragments 序列.