RFC 9204 - QPACK : Compression de champs pour HTTP/3
Date de publication : Juin 2022
Statut : Standards Track
Auteurs : C. Krasic, M. Bishop, A. Frindell (Meta)
Résumé (Abstract)
Cette spécification définit QPACK : un format de compression pour représenter efficacement les champs HTTP qui doit être utilisé dans HTTP/3. Il s'agit d'une variation de la compression HPACK qui cherche à réduire le blocage en tête de ligne (Head-of-Line Blocking).
Table des matières (Contents)
- 1. Introduction
- 1.1 Conventions et définitions
- 1.2 Conventions de notation
- 2. Aperçu du processus de compression
- 2.1 Encodeur
- 2.2 Décodeur
- 3. Tables de référence
- 3.1 Table statique
- 3.2 Table dynamique
- 4. Format de transmission
- 4.1 Primitives
- 4.2 Flux d'encodeur et de décodeur
- 4.3 Instructions d'encodeur
- 4.4 Instructions de décodeur
- 4.5 Représentations de lignes de champs
- 5. Configuration
- 6. Gestion des erreurs
- 7. Considérations de sécurité
- 7.1 Sondage de l'état de la table dynamique
- 7.2 Encodage Huffman statique
- 7.3 Consommation de mémoire
- 7.4 Limites d'implémentation
- 8. Considérations IANA
- 9. Références
Annexes (Appendices)
- Annexe A. Table statique
- Annexe B. Exemples d'encodage et de décodage
- Annexe C. Exemple d'algorithme d'encodage en un seul passage
Ressources connexes
- RFC officiel : RFC 9204
- Page officielle : RFC 9204 DataTracker
- Errata : RFC Editor Errata
Référence rapide
Qu'est-ce que QPACK ?
QPACK est le format de compression d'en-têtes pour HTTP/3, basé sur HPACK mais optimisé pour les caractéristiques de livraison non ordonnée de QUIC.
Améliorations principales
Changements majeurs par rapport à HPACK :
- ✅ Réduction du blocage en tête de ligne - Permet le décodage non ordonné
- ✅ Flux indépendants - L'encodeur/décodeur utilisent des flux unidirectionnels séparés
- ✅ Compromis flexibles - Équilibre entre taux de compression et latence
- ✅ Gestion de table dynamique - Mécanismes de contrôle plus fins
QPACK vs HPACK
| Caractéristique | HPACK (HTTP/2) | QPACK (HTTP/3) |
|---|---|---|
| Protocole de transport | TCP | QUIC (UDP) |
| Blocage en tête de ligne | Sévère | Significativement réduit |
| Table dynamique | Unique | Encodeur/Décodeur séparés |
| Taux de compression | Élevé | Proche de HPACK |
| Traitement non ordonné | Non supporté | Supporté |
| Modes de référence | Index absolu uniquement | Plusieurs types d'index |
Source : RFC 9204 - QPACK: Field Compression for HTTP/3
Copyright : © 2022 IETF Trust. Voir https://www.rfc-editor.org/info/rfc9204 pour l'avis de copyright complet.