[40] HEADERS
フレームは、最初のヘッダーブロック素片を表します。
[2] HEADERS
フレーム (フレーム型 0x1
)
は、ストリームを開き、 header block fragment を伝送するものです >>1。
[18] ストリーム識別子欄は、フレームを関連付けるストリームを表します。
ストリームに関連付けなければなりません >>1。
ストリーム識別子 0x0
を指定することはできません。
END_STREAM
(0x1
= 第0ビット)CONTINUATION
フレームは同じストリームで続いて送信できます >>1。END_HEADERS
(0x4
= 第2ビット)CONTINUATION
フレームが次に来ないことを表します >>1。
[13] END_HEADERS
フラグが設定されていなければ、
同じストリームで CONTINUATION
フレームが来なければなりません。
>>1PADDED
(0x8
= 第3ビット)PRIORITY
(0x20
= 第5ビット)[28] 他のフラグは、0 でなければなりません。 受信者は、無視しなければなりません。 >>27
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
END_STREAM | 0 | END_HEADERS | PADDED | 0 | PRIORITY | 0 | 0 |
PADDED
フラグが設定されている時のみ存在します。 >>1
値は0でも構いません。値が実際の詰めの長さを超えることは禁止されていませんが、
当然正しく処理できませんし、payload から固定長の部分の長さを引いた長さを超えるなら接続エラーとなります。PRIORITY
フラグが設定されている時だけ存在します。 >>1PRIORITY
フラグが設定されている時だけ存在します。 >>1PRIORITY
フラグが設定されている時だけ存在します。 >>10 | 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
詰め長 | E | ストリーム依存性 | |||||||||||||||||||||||||||||
(cont.) | 重み | header block fragment | |||||||||||||||||||||||||||||
(cont.) | |||||||||||||||||||||||||||||||
詰め | |||||||||||||||||||||||||||||||
[3] HEADERS
フレームは、ストリームの状態が
idle, reserved (local), open, half-closed (remote)
のいずれかの時に送信できます >>1。
[33] HEADERS
フレームを idle 状態のストリームで送信すると、
open 状態に遷移します >>31。 END_STREAM
フラグも設定されていれば、そのまま更に half-closed (local)
状態に遷移します >>31。
[34] HEADERS
フレームを reserved (local) 状態のストリームで送信すると、
half-closed (remote) 状態に遷移します >>31。
[36] END_STREAM
フラグが設定されている HEADERS
フレームを open 状態のストリームで送信すると、 half-closed (local)
状態に遷移します >>31。
[39] END_STREAM
フラグが設定されている HEADERS
フレームを half-closed (remote) 状態のストリームで送信すると、 closed
状態に遷移します >>31。
[19] 受信者は、ストリーム識別子が 0x0
なら、
接続エラー PROTOCOL_ERROR
としなければなりません >>1。
[30] 受信者は、payload が短すぎるか、設定 SETTINGS_MAX_FRAME_SIZE
より長いなら、接続エラー FRAME_SIZE_ERROR
としなければなりません
>>29。
[25] 受信者は、詰め長が payload から固定長の部分を除いた長さより大きければ、
接続エラー PROTOCOL_ERROR
としなければなりません >>1。
[24] 受信者は、詰めに 0 以外があれば接続エラー PROTOCOL_ERROR
としても構いません。 >>23
[15] END_HEADERS
フラグが設定されていて次のフレームが
CONTINUATION
フレーム以外だったり、
他のストリームだったりした場合は、接続エラー PROTOCOL_ERROR
としなければなりません >>1。
[32] HEADERS
フレームを idle 状態のストリームで受信すると、
open 状態に遷移します >>31。 END_STREAM
フラグも設定されていれば、そのまま更に half-closed (remote)
状態に遷移します >>31。
[35] HEADERS
フレームを reserved (remote) 状態のストリームで受信すると、
half-closed (local) 状態に遷移します >>31。END_STREAM
フラグも設定されていれば、そのまま更に closed
状態に遷移します >>31。
[37] END_STREAM
フラグが設定されている HEADERS
フレームを open 状態のストリームで受信すると、 half-closed (remote)
状態に遷移します >>31。
[38] END_STREAM
フラグが設定されている HEADERS
フレームを half-closed (local) 状態のストリームで受信すると、 closed
状態に遷移します >>31。