(九) HTTP/2的错误码定义

HTTP/2的错误码是32比特位的字段,用在RST_STREAM帧和GOAWAY帧中传递流错误或连接错误的原因。

所有错误码共享一个相同的错误码空间。一些错误码只适用于流或者整个连接,在其它上下文环境中没有预定义的语义。

定义了以下错误码:

  • NO_ERROR (0x0,没有错误):关联的条件不是错误的结果。例如,GOAWAY帧可以包含此错误码,表明优雅地关闭连接。
  • 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,连接错误):为某个连接请求建立的连接被重置或被不正常地关闭。
  • ENHANCE_YOUR_CALM (0xb,提高你的稳定性):端点检测到远端表现出有可能产生过大负载的行为。
  • INADEQUATE_SECURITY (0xc,安全性不够):底层传输存在不满足最低安全需求的属性。
  • HTTP_1_1_REQUIRED (0xd,需要HTTP1.1):端点要求使用HTTP1.1来代替HTTP/2。

未知的或不支持的错误码一定不能触发任何特殊的行为。这些情况可以被视为等同于INTERNAL_ERROR。

你可能感兴趣的:(HTTP/2)