Read a connection-level advertisement
01A server can send an ORIGIN frame on an existing HTTP/2 connection. It advertises possible origins, not a new address to connect to.
An ORIGIN frame with zero payload octets is valid. A successfully processed first frame still initializes the connection’s Origin Set; the later chapter explains its initial member.
Source for this drawing: RFC 8336 · Read RFC section 2.1 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
The frame describes this connection; it is not the HTTP Origin request header.
- The h2 protocol identifier means HTTP/2 using TLS (Transport Layer Security). h2c identifies HTTP/2 without TLS; ORIGIN is not valid there.
- The frame type is 0x0c (decimal 12); stream 0 means the connection as a whole. The server sends it to the client.
- Each entry starts with an unsigned 16-bit Origin-Len, counting ASCII-Origin octets. The guide uses the corrected field name from verified editorial erratum 5378.
- The payload contains zero or more entries. An empty payload has zero entries; it is not an advertisement of an empty Origin Set.
- A16-bit entry length does not waive HTTP/2 frame-size limits. The header excerpt is schematic; RFC 9113 §§ 4.1–4.2 describes the complete 9-octet header and negotiated payload limit.
Sources: RFC 8336 §§ 2.1–2.3, verified erratum 5378; full HTTP/2 envelope in companion RFC 9113 §§ 4.1–4.2. Offline fictional examples only. The illustrations assume certificate-check results; they do not perform those checks. MUST, SHOULD and MAY retain their RFC meanings; SHOULD exceptions require carefully weighing the implications.
Read the RFC section ↗