RFC 9204 - QPACK: Field Compression for HTTP/3
Published: June 2022
Status: Standards Track
Authors: C. Krasic, M. Bishop, A. Frindell (Meta)
Abstract
This specification defines QPACK: a compression format for efficiently representing HTTP fields that is to be used in HTTP/3. This is a variation of HPACK compression that seeks to reduce head-of-line blocking.
Contents
- 1. Introduction
- 1.1 Conventions and Definitions
- 1.2 Notational Conventions
- 2. Compression Process Overview
- 2.1 Encoder
- 2.2 Decoder
- 3. Reference Tables
- 3.1 Static Table
- 3.2 Dynamic Table
- 4. Wire Format
- 4.1 Primitives
- 4.2 Encoder and Decoder Streams
- 4.3 Encoder Instructions
- 4.4 Decoder Instructions
- 4.5 Field Line Representations
- 5. Configuration
- 6. Error Handling
- 7. Security Considerations
- 7.1 Probing Dynamic Table State
- 7.2 Static Huffman Encoding
- 7.3 Memory Consumption
- 7.4 Implementation Limits
- 8. IANA Considerations
- 9. References
Appendices
- Appendix A. Static Table
- Appendix B. Encoding and Decoding Examples
- Appendix C. Sample Single-Pass Encoding Algorithm
Related Resources
- Official RFC: RFC 9204
- Official Page: RFC 9204 DataTracker
- Errata: RFC Editor Errata
Quick Reference
What is QPACK?
QPACK is HTTP/3's header compression format, based on HPACK but optimized for QUIC's out-of-order delivery characteristics.
Core Improvements
Major changes compared to HPACK:
- ✅ Reduced Head-of-Line Blocking - Allows out-of-order decoding
- ✅ Independent Streams - Encoder/decoder use separate unidirectional streams
- ✅ Flexible Trade-offs - Balance between compression ratio and latency
- ✅ Dynamic Table Management - More fine-grained control mechanisms
QPACK vs HPACK
| Feature | HPACK (HTTP/2) | QPACK (HTTP/3) |
|---|---|---|
| Transport Protocol | TCP | QUIC (UDP) |
| Head-of-Line Blocking | Severe | Significantly Reduced |
| Dynamic Table | Single | Encoder/Decoder Separated |
| Compression Ratio | High | Close to HPACK |
| Out-of-Order Processing | Not Supported | Supported |
| Reference Modes | Absolute Index Only | Multiple Index Types |
Use Cases
- 🌐 HTTP/3 - Next generation HTTP protocol
- 🚀 QUIC Protocol - Low latency transport
- 📱 Mobile Applications - Unstable network environments
- ⚡ Real-time Communication - WebRTC over HTTP/3