7. 错误码 (Error Codes)
错误码是32位字段,在RST_STREAM和GOAWAY帧中使用,用于传达流或连接错误的原因。
错误码共享一个公共代码空间。某些错误码仅适用于流或整个连接,在其他上下文中没有定义的语义。
定义了以下错误码:
| 名称 | 码 | 描述 |
|---|---|---|
| NO_ERROR | 0x0 | 相关条件不是错误的结果 |
| PROTOCOL_ERROR | 0x1 | 端点检测到未指定的协议错误 |
| INTERNAL_ERROR | 0x2 | 端点遇到意外的内部错误 |
| FLOW_CONTROL_ERROR | 0x3 | 端点检测到对等方违反了流量控制协议 |
| SETTINGS_TIMEOUT | 0x4 | 端点在合理的时间内未收到SETTINGS帧确认 |
| STREAM_CLOSED | 0x5 | 端点在流半关闭后收到帧 |
| FRAME_SIZE_ERROR | 0x6 | 端点收到大小无效的帧 |
| REFUSED_STREAM | 0x7 | 端点在执行任何应用处理之前拒绝流 |
| CANCEL | 0x8 | 用于端点指示流不再需要 |
| COMPRESSION_ERROR | 0x9 | 端点无法维护头部压缩上下文的连接状态 |
| CONNECT_ERROR | 0xa | 为响应CONNECT请求建立的连接已重置或异常关闭 |
| ENHANCE_YOUR_CALM | 0xb | 端点检测到其对等方的行为可能正在生成过多的负载 |
| INADEQUATE_SECURITY | 0xc | 底层传输具有不满足最低安全要求的属性 |
| HTTP_1_1_REQUIRED | 0xd | 端点需要使用HTTP/1.1而不是HTTP/2 |
未知或不支持的错误码不得触发任何特殊行为。这些可以被实现视为等同于INTERNAL_ERROR。
上一章: 6. 帧定义 (Frame Definitions)
下一章: 8. HTTP消息交换 (HTTP Message Exchanges)