Aller au contenu principal

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.