[32] HTTP/2 DATA
フレームは、
HTTPメッセージの payload body を転送するためのフレームです。
payload body は、1個以上の DATA
フレームによって表します。
[2] DATA
フレーム (フレーム型 0x0
) は、
ストリームに関連付けられた任意の可変長のバイト列を伝送するものです >>1。
[14] DATA
フレームは、フロー制御の対象となります >>1, >>31, >>19。
[15] DATA
フレームは、ストリームの状態が open
か half-closed (remote) の場合のみ送信できます >>1。
[12] DATA
フレームは、ストリームと関連付けなければなりません
>>1。ストリーム識別子が 0x0
であってはなりません。
[22] その他のフラグは、 0 に設定しなければなりません。 受信者は無視しなければなりません。 >>21
[5] DATA
フレームの payload は、次の欄で構成されます。
[3] HTTP要求や HTTP応答の payload の転送に、1つ以上の
DATA
フレームを使うことができます >>1。
[25] END_STREAM
フラグが設定されている DATA
フレームを open 状態のストリームで送信すると、 half-closed (local)
状態に遷移します >>26。
[29] END_STREAM
フラグが設定されている DATA
フレームを half-closed (remote) 状態のストリームで送信すると、 closed
状態に遷移します >>26。
[13] 受信者は、DATA
フレームのストリーム識別子が 0x0
なら、接続エラー PROTOCOL_ERROR
としなければなりません
>>1。
[23] 受信者は、payload が短すぎるか、設定 SETTINGS_MAX_FRAME_SIZE
より長いなら、エラー FRAME_SIZE_ERROR
としなければなりません
>>24 (おそらくストリームエラー)。
[17] 受信者は、ストリームの状態が open か half-closed (local)
でなければ、ストリームエラー STREAM_CLOSED
としなければなりません
>>1。
ただし場合によっては closed で受信しても無視します >>26。
[30] closed で無視する場合でも、状況によってはフロー制御窓の計算には算入します >>26。
[27] END_STREAM
フラグが設定されている DATA
フレームを open 状態のストリームで受信すると、 half-closed (remote)
状態に遷移します >>26。
[28] END_STREAM
フラグが設定されている DATA
フレームを half-closed (remote) 状態のストリームで受信すると、 closed
状態に遷移します >>26。
[11] 受信者は、詰めに 0 以外があれば接続エラー PROTOCOL_ERROR
としても構いません。 >>1
[18] 受信者は、詰め長が payload の長さ以上なら、
接続エラー PROTOCOL_ERROR
としなければなりません >>1。