Visual RFC.
ALL RFCs / RFC 8336
Read the RFC ↗
RFC 8336 / HTTP/2 ORIGIN

Read a connection-level advertisement

01

A server can send an ORIGIN frame on an existing HTTP/2 connection. It advertises possible origins, not a new address to connect to.

RFC 8336 · § 2.1EXAMPLE
4 / 4
04
A payload can contain no entries.

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.

Read a connection-level advertisementAn 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.An empty payload is still a frameClientServerORIGIN on existing h2 connectionHeader excerpt · field widths schematicType 0x0c · Flags 0x00 · Stream 0Payload: 0 octets · 0 entriesFirst accepted frame still initializes the setEmpty payload ≠ uninitialized state

Source for this drawing: RFC 8336 · Read RFC section 2.1 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
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.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

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.
DETAILS

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 ↗

All chapters in RFC 8336

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗