メインコンテンツまでスキップ

4. HTTPフレーム (HTTP Frames)

4.1 フレーム形式 (Frame Format)

すべてのフレームは、固定長の9オクテットヘッダー (9-octet Header) と、その後に続く可変長ペイロード (Variable-length Payload) で始まります。

+-----------------------------------------------+
| Length (24) |
+---------------+---------------+---------------+
| Type (8) | Flags (8) |
+-+-------------+---------------+-------------------------------+
|R| Stream Identifier (31) |
+=+=============================================================+
| Frame Payload (0...) ...
+---------------------------------------------------------------+

フィールド:

  • Length: 24ビット符号なし整数 (ペイロード長)
  • Type: 8ビットフレームタイプ識別子
  • Flags: 8ビットフレームタイプ固有のフラグ
  • R: 予約済み1ビットフィールド
  • Stream Identifier: 31ビットストリーム識別子

4.2 フレームサイズ (Frame Size)

フレームペイロードのサイズは、SETTINGS_MAX_FRAME_SIZEを介してネゴシエートされる最大サイズによって制限されます。デフォルトは2^14 (16,384) オクテットです。

4.3 ヘッダー圧縮と展開 (Header Compression and Decompression)

ヘッダーフィールド (Header Fields) は、HPACK [RFC7541]を使用して圧縮されます。ヘッダーフィールドブロックは、HEADERS、PUSH_PROMISE、またはCONTINUATIONフレームに断片化されます。