FeatureHTTP/1.0HTTP/1.1HTTP/2HTTP/3
Introduction Year1996199720152022
Connection HandlingOne request per connectionPersistent connections (keep-alive by default)Multiplexing over a single connectionMultiplexing over QUIC (UDP-based)
Header CompressionNoneNoneHPACK (binary header compression)QPACK (optimized for QUIC)
MultiplexingNoNoYes (over a single TCP connection)Yes (over QUIC, eliminates head-of-line blocking)
Head-of-Line BlockingSevereSevereReduced (still present at TCP layer)Eliminated (QUIC-based transport)
SecurityNo native supportNo native supportTLS 1.2 or higher (optional)TLS 1.3 (mandatory with QUIC)
Request/Response ModelText-based, synchronousText-based, synchronousBinary framing, asynchronousBinary framing, asynchronous
PerformanceLimitedImproved via pipelining and cachingFaster (multiplexing, fewer connections)Fastest (QUIC-based improvements)
Error RecoveryBasicBasicLimited to TCP retriesBetter (QUIC’s built-in retransmissions)
Connection TypeTCPTCPTCPQUIC (UDP-based)
CachingBasic headers (Expires)Enhanced headers (Cache-Control, ETag)Same as HTTP/1.1Same as HTTP/1.1
Upgrade PathNew connections requiredNew connections requiredUses ALPN to negotiate upgradeNative protocol, no need for upgrade