Skip to main content

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

Appendices



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

FeatureHPACK (HTTP/2)QPACK (HTTP/3)
Transport ProtocolTCPQUIC (UDP)
Head-of-Line BlockingSevereSignificantly Reduced
Dynamic TableSingleEncoder/Decoder Separated
Compression RatioHighClose to HPACK
Out-of-Order ProcessingNot SupportedSupported
Reference ModesAbsolute Index OnlyMultiple 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