Visual RFC.
ALL RFCs / RFC 9113
Read the RFC ↗

RFC 9113 / START HERE

HTTP/2, before the details

HTTP/2

HTTP means Hypertext Transfer Protocol. HTTP/2 carries multiple request and response streams over one TCP connection using binary frames.

The idea in one picture

  1. A browser makes several requests

  2. HTTP/2 shares a TCP connection

  3. Responses use separate streams

A simplified picture of the idea; the chapters explain the actual mechanisms.

Why it exists

A web page can need many resources. Sharing one connection helps avoid treating every exchange as a separate connection.

A familiar example

A browser requests a page, styles, and images on separate HTTP/2 streams within one connection.

Helpful background

You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.

What you’ll learn next

Begin with chapter one, or choose a topic.

  1. Connection prefaceBoth peers establish HTTP/2 state before exchanging ordinary requests.
  2. Multiplexed streamsFrames for several exchanges share a connection, with stream identifiers keeping their state separate.
  3. Frames and compressed fieldsA nine-octet frame header identifies length, type, flags, and stream.
  4. Receiver flow-control creditDATA must fit both the stream window and the connection window.
  5. Reset and graceful shutdownA broken stream and a broken connection require different signals.
Start with chapter one →
EXPLORE THIS PROTOCOL

HTTP versions

HTTP semantics apply across versions. HTTP/2 and HTTP/3 change how messages travel; all three guides remain relevant.

This introduction explains RFC 9113 (2022). Read the original RFC ↗