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

Ignore an ineligible frame before changing state

02

A received frame must pass connection, stream and flag rules before it changes the client’s Origin Set.

RFC 8336 · § 2.2EXAMPLE
5 / 5
05
Proxy connection: ignore the frame.

This separate client is configured to use a proxy for the connection and MUST ignore ORIGIN from it. The frame is hop by hop; intermediaries MUST NOT forward it.

Ignore an ineligible frame before changing stateThis separate client is configured to use a proxy for the connection and MUST ignore ORIGIN from it. The frame is hop by hop; intermediaries MUST NOT forward it.Proxy connection: ignoreProxyClientframe receivedh2 · stream 0 · flags 0 · proxyClient MUST ignore this frameOrigin Set unchangedThis frame does not initialize it

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

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

Receiving bytes is different from accepting their effect.

  • ORIGIN MUST be sent on stream 0. An implementing client MUST ignore it on any other stream, and MUST ignore it on h2c.
  • The low flags 0x01/0x02/0x04/0x08 require ignoring the frame unless their semantics are understood. Higher flags do not change processing under this specification.
  • An intermediary MUST NOT forward ORIGIN frames. A client configured to use a proxy MUST ignore ORIGIN received from that proxy.
  • An endpoint without this optional extension can safely ignore it. Other protocols need an explicit specification opting in; this guide covers the HTTP/2 encoding.
DETAILS

The current HTTP/2 foundation, RFC 9113 §3.1, deprecates the older h2c HTTP Upgrade usage; the ignore case here explains RFC 8336’s rule, not a recommendation to deploy h2c. The failed cases use separate example connections; one connection is not switching between h2, h2c and proxy mode. The picture shows a frame already delivered to the receiver. Its processing path stops before changing Origin Set state; no TCP drop or connection error is invented. 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 ↗