/
343.txt
42 lines (33 loc) · 1.82 KB
/
343.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[2] [DFN[[RUBYB[接続エラー]@en[connection error]]]]は、
[[HTTP/2接続]]全体に影響するエラーです [SRC[>>1]]。
[[フレーム]]層の処理ができなくなったり、[[接続]]の状態を壊したりします [SRC[>>4]]。
* 仕様書
[REFS[
- [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-2.2>
- [4] '''[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.4.1>'''
]REFS]
* 文脈
[3] 次のエラーは[[接続エラー]]となることがあります。
[FIG(list short)[
- [CODE[[[COMPRESSION_ERROR]]]]
- [CODE[[[FLOW_CONTROL_ERROR]]]]
- [CODE[[[FRAME_SIZE_ERROR]]]]
- [CODE[[[PROTOCOL_ERROR]]]]
- [CODE[[[SETTINGS_TIMEOUT]]]]
- [CODE[[[STREAM_CLOSED]]]]
]FIG]
;; [8] [[エンドポイント]]はいつでも[[接続]]を閉じることができます。
特に[[ストリームエラー]]を[[接続エラー]]として扱うこともできます。 [SRC[>>4]]
* 処理
[5] [[接続エラー]]となった[[エンドポイント]]は、
まず [CODE[[[GOAWAY]]]] [[フレーム]]を送信する[['''べきです''']] [SRC[>>4]]。
[FIG(list members)[
[FIGCAPTION[
[CODE[[[GOAWAY]]]] [[フレーム]]
]FIGCAPTION]
:[[ストリーム識別子]]:[[peer]] から最後に[[受信]]に成功した[[ストリーム]]の[[ストリーム識別子]]
:[[誤り符号]]:接続を終える理由
]FIG]
;; [7] これはできるだけ[[接続]]終了の理由を [[peer]] に伝えようとするものですが、
[[peer]] が受信する保証はありません [SRC[>>4]]。
[6] その送信後、 [[TCP接続]]を閉じなければ[['''なりません''']] [SRC[>>4]]。