RFC 9112 · June 2022 · R. Fielding, M. Nottingham, J. Reschke
HTTP/1.1
Index fetched 2026-10-19 from rfc-editor.org
How it works
Built by hand from RFC 9112. Every arrow, step and field cites the RFC sentence it comes from, and an automated test checks each quote against the RFC text. Provisional: not yet reviewed by a maintainer. Help verify this visual
RFC 9112 §2.1 A message can be either a request from client to server or a response from server to client.
1. Client → Server: GET /where?q=now HTTP/1.1
To fetch http://www.example.org/where?q=now directly from the origin server, the client sends only the path and query as the request-target, followed by a Host header field.
RFC 9112 §3.2.1GET /where?q=now HTTP/1.1 Host: www.example.org
2. Server → Client: status-line = HTTP-version SP status-code SP [ reason-phrase ]
The response starts with a status-line: the protocol version, a 3-digit status code, and an optional textual reason phrase.
RFC 9112 §4status-line = HTTP-version SP status-code SP [ reason-phrase ]
Quoted text consists of unmodified excerpts from RFC 9112, published by the IETF (line breaks reflowed). Copyright in the RFC text belongs to the IETF Trust and the persons identified as the document authors, as stated in the RFC. The diagrams and plain-English explanations are rfc-visual's own and do not replace the RFC.
Not shown: Header field line syntax and obsolete line folding (§5); Message body length: Transfer-Encoding, Content-Length and chunked coding (§6, §7); Other request-target forms: absolute-form, authority-form, asterisk-form (§3.2); HTTP/1.0 keep-alive rules (§9.3); Pipelining and retrying requests (§9.3.1, §9.3.2); Staged server close to avoid the TCP reset problem (§9.6); TLS connection initiation and closure (§9.7, §9.8).
Lineage
Text
Loading the RFC text…