6. Frame Definitions
本节定义 HTTP/2 使用的所有 frame types.
Frame Types
| Frame Type | Code | 描述 |
|---|---|---|
| DATA | 0x0 | 传递任意的可变长度 octet 序列 |
| HEADERS | 0x1 | 打开一个 stream, 并携带 header block fragment |
| PRIORITY | 0x2 | 指定 sender 建议的 stream priority |
| RST_STREAM | 0x3 | 立即终止一个 stream |
| SETTINGS | 0x4 | 传递 configuration parameters |
| PUSH_PROMISE | 0x5 | 通知 peer sender 准备发起 stream |
| PING | 0x6 | 用于测量 round-trip time 的机制 |
| GOAWAY | 0x7 | 发起 connection 关闭 |
| WINDOW_UPDATE | 0x8 | 实现 flow control |
| CONTINUATION | 0x9 | 延续 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 序列.