4. HTTP Frames
4.1 Frame Format
All frames begin with a fixed 9-octet header followed by a variable-length payload.
+-----------------------------------------------+
| Length (24) |
+---------------+---------------+---------------+
| Type (8) | Flags (8) |
+-+-------------+---------------+-------------------------------+
|R| Stream Identifier (31) |
+=+=============================================================+
| Frame Payload (0...) ...
+---------------------------------------------------------------+
Fields:
- Length: 24-bit unsigned integer (payload length)
- Type: 8-bit frame type identifier
- Flags: 8-bit flags specific to frame type
- R: Reserved 1-bit field
- Stream Identifier: 31-bit stream identifier
4.2 Frame Size
The size of a frame payload is limited by the maximum size negotiated via SETTINGS_MAX_FRAME_SIZE. Default is 2^14 (16,384) octets.
4.3 Header Compression and Decompression
Header fields are compressed using HPACK [RFC7541]. Header field blocks are fragmented into HEADERS, PUSH_PROMISE, or CONTINUATION frames.