跳到主要内容

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 序列.