Web Protocols

HTTP/2

A binary, multiplexed protocol that carries many concurrent requests over one TCP connection and compresses headers with HPACK — eliminating HTTP/1.1's application-layer head-of-line blocking.

What it is

HTTP/2 (RFC 9113) replaces HTTP/1.1's text framing with a binary layer of frames and streams. Many requests and responses interleave over a single connection (multiplexing), headers are compressed with HPACK, and streams can be prioritised. In browsers it is only used over TLS, negotiated via ALPN.

VERIFY NEGOTIATION
curl -I --http2 https://example.com
# HTTP/2 200  ← protocol confirmed via ALPN

TCP head-of-line blocking remains

HTTP/2 removes application-layer HoL blocking, but all streams still share one TCP connection. A single lost packet stalls every stream until it is retransmitted. HTTP/3 fixes this by moving to QUIC.

Why it matters

  • Multiplexing removes the need for connection sharding and asset concatenation hacks.
  • HPACK header compression sharply cuts overhead on request-heavy pages.

Common mistakes

  • Keeping HTTP/1.1-era optimisations (domain sharding, sprite sheets) that hurt under HTTP/2.
  • Relying on Server Push — it is deprecated and removed from Chrome; use 103 Early Hints instead.

How WebInspect checks this

  • WebInspect detects HTTP/2 support via ALPN and reports it in the protocols and performance sections.