[40] HEADERS フレームは、最初のヘッダーブロック素片を表します。
[2] HEADERS フレーム (フレーム型 0x1)
は、ストリームを開き、 header block fragment を伝送するものです >>1。
[18] ストリーム識別子欄は、フレームを関連付けるストリームを表します。
ストリームに関連付けなければなりません >>1。
ストリーム識別子 0x0 を指定することはできません。
[11] 次のフラグがあります。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
END_STREAMEND_HEADERSPADDEDPRIORITY[4] payload は次の欄で構成されます。PADDED フラグが設定されている時のみ存在します。 >>1
値は0でも構いません。値が実際の詰めの長さを超えることは禁止されていませんが、
当然正しく処理できませんし、payload から固定長の部分の長さを引いた長さを超えるなら接続エラーとなります。PRIORITY フラグが設定されている時だけ存在します。 >>1PRIORITY フラグが設定されている時だけ存在します。 >>1PRIORITY フラグが設定されている時だけ存在します。 >>1
[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。