4. Trames HTTP (HTTP Frames)
4.1 Format de trame (Frame Format)
Toutes les trames commencent par un en-tête fixe de 9 octets (9-octet Header) suivi d'une charge utile de longueur variable (Variable-length Payload).
+-----------------------------------------------+
| Length (24) |
+---------------+---------------+---------------+
| Type (8) | Flags (8) |
+-+-------------+---------------+-------------------------------+
|R| Stream Identifier (31) |
+=+=============================================================+
| Frame Payload (0...) ...
+---------------------------------------------------------------+
Champs :
- Length : Entier non signé 24 bits (longueur de charge utile)
- Type : Identifiant de type de trame 8 bits
- Flags : Indicateurs 8 bits spécifiques au type de trame
- R : Champ réservé 1 bit
- Stream Identifier : Identifiant de flux 31 bits
4.2 Taille de trame (Frame Size)
La taille de la charge utile d'une trame est limitée par la taille maximale négociée via SETTINGS_MAX_FRAME_SIZE. La valeur par défaut est 2^14 (16 384) octets.
4.3 Compression et décompression d'en-tête (Header Compression and Decompression)
Les champs d'en-tête (Header Fields) sont compressés à l'aide de HPACK [RFC7541]. Les blocs de champs d'en-tête sont fragmentés en trames HEADERS, PUSH_PROMISE ou CONTINUATION.