[4] [DFN[[RUBYB[誤り符号]@en[error code]]]] ([DFN[[[エラーコード]]]]) は、
[[ストリームエラー]]や[[接続エラー]]で理由を伝える32ビット欄です [SRC[>>3]]。

* 仕様書

[REFS[
- [17] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-2.2>
- [1] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-5.5>
- [13] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-6.4>
- [15] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-6.8>
- [3] '''[CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-7>'''
- [10] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-11.4>
- [12] [CITE[Hypertext Transfer Protocol version 2 (HTTP/2) Parameters]] ([TIME[2015-05-20 07:51:31 +09:00]] 版) <https://www.iana.org/assignments/http2-parameters/http2-parameters.xml#error-code>
]REFS]

* 文脈

[5] [CODE[[[GOAWAY]]]] [[フレーム]]や [CODE[[[RST_STREAM]]]] [[フレーム]]で使います
[SRC[>>3]]。

[14] [CODE(HTTP)@en[[[RST_STREAM]]]] [[フレーム]]や
[CODE(HTTP)@en[[[GOAWAY]]]] [[フレーム]]の[DFN[[RUBYB[[[誤り符号]]]@en[Error Code]]]]欄は、
[[符号無し]]32ビット[[整数]] ([[ネットワークバイト順]] [SRC[>>17]]) 
で[[誤り符号]]を表します [SRC[>>13, >>15]]。
[[誤り符号]]は、[[ストリーム]] [SRC[>>13]] や[[接続]] [SRC[>>15]]
を終わらせる理由を表します。

* 処理

[2] 未知の[[誤り符号]]は、無視しなければ[['''なりません''']] [SRC[>>1]]。
特別な動作を引き起こしては[['''なりません''']] [SRC[>>3]]。
[CODE[[[INTERNAL_ERROR]]]] と同等として扱って構いません [SRC[>>3]]。

* 誤り符号の一覧

[6] [[誤り符号]]には、[[ストリームエラー]]でのみ使うもの、
[[雪像エラー]]のみで使うもの、
どちらでも使うものがあり、共通の符号空間に割り当てられています [SRC[>>3]]。

[7] 次の[[誤り符号]]があります。

[FIG(short list)[
- [CODE[[[NO_ERROR]]]] ([CODE[[[0x0]]]])
- [CODE[[[PROTOCOL_ERROR]]]] ([CODE[[[0x1]]]])
- [CODE[[[INTERNAL_ERROR]]]] ([CODE[[[0x2]]]])
- [CODE[[[FLOW_CONTROL_ERROR]]]] ([CODE[[[0x3]]]])
- [CODE[[[SETTINGS_TIMEOUT]]]] ([CODE[[[0x4]]]])
- [CODE[[[STREAM_CLOSED]]]] ([CODE[[[0x5]]]])
- [CODE[[[FRAME_SIZE_ERROR]]]] ([CODE[[[0x6]]]])
- [CODE[[[REFUSED_STREAM]]]] ([CODE[[[0x7]]]])
- [CODE[[[CANCEL]]]] ([CODE[[[0x8]]]])
- [CODE[[[COMPRESSION_ERROR]]]] ([CODE[[[0x9]]]])
- [CODE[[[CONNECT_ERROR]]]] ([CODE[[[0xa]]]])
- [CODE[[[ENHANCE_YOUR_CALM]]]] ([CODE[[[0xb]]]])
- [CODE[[[INADEQUATE_SECURITY]]]] ([CODE[[[0xc]]]])
- [CODE[[[HTTP_1_1_REQUIRED]]]] ([CODE[[[0xd]]]])
]FIG]

[8] [[誤り符号]] [DFN[[CODE[[[PROTOCOL_ERROR]]]]]] ([CODE[[[0x1]]]])
は、何らかのプロトコルエラーを検出したことを表します。
より詳しい[[誤り符号]]が無い時に使います。 [SRC[>>3]]

[9] [[誤り符号]] [DFN[[CODE[[[INTERNAL_ERROR]]]]]] ([CODE[[[0x2]]]])
は、予期せぬ内部エラーに遭遇したことを表します。 [SRC[>>3]]

[11] [[IANA登録簿]] [SRC[>>12]] があります [SRC[>>10]]。

;; [29] >>28 に [[JSON]] 形式の一覧データファイルがあります。
[REFS[
- [28] [CITE@en[data-web-defs/http-frames.txt at master · manakai/data-web-defs]] ([TIME[2015-05-28 00:33:14 +09:00]] 版) <https://github.com/manakai/data-web-defs/blob/master/doc/http-frames.txt>
]REFS]
