-NOT</em>", "<em class="bcp14">SHOULD</em>", "<em class="bcp14">SHOULD NOT</em>", "<em class="bcp14">RECOMMENDED</em>", "<em class="bcp14">NOT RECOMMENDED</em>", "<em class="bcp14">MAY</em>", and "<em class="bcp14">OPTIONAL</em>" in this document are to be interpreted as described in BCP 14 <a href="#RFC2119"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a> <a href="#RFC8174"><cite title="Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words">[RFC8174]</cite></a> when, and only when, they appear in all capitals, as shown here.</p></div><div id="rfc.section.1.1.p.2"><p>The frame diagram in this document uses the format defined in <a href="https://www.rfc-editor.org/rfc/rfc9000.html#section-1.3">Section 1.3</a> of <a href="#QUIC-TRANSPORT"><cite title="QUIC: A UDP-Based Multiplexed and Secure Transport">[QUIC-TRANSPORT]</cite></a> to illustrate the order and size of fields.</p></div></section></section><hr class="hidden-print"><section id="frame-origin"><h2 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a> <a href="#frame-origin">The ORIGIN HTTP/3 Frame</a></h2><div id="rfc.section.2.p.1"><p>The ORIGIN HTTP/3 frame allows a server to indicate what origin or origins <a href="#RFC6454"><cite title="The Web Origin Concept">[RFC6454]</cite></a> the server would like the client to consider as one or more members of the Origin Set (<a href="https://www.rfc-editor.org/rfc/rfc8336.html#section-2.3">Section 2.3</a> of <a href="#ORIGIN"><cite title="The ORIGIN HTTP/2 Frame">[ORIGIN]</cite></a>) for the connection within which it occurs.</p></div><div id="rfc.section.2.p.2"><p>The semantics of the frame payload are identical to those of the HTTP/2 frame defined in <a href="#ORIGIN"><cite title="The ORIGIN HTTP/2 Frame">[ORIGIN]</cite></a>. Where HTTP/2 reserves stream 0 for frames related to the state of the connection, HTTP/3 defines a pair of unidirectional streams called "control streams" for this purpose.</p></div><div id="rfc.section.2.p.3"><p>Where <a href="#ORIGIN"><cite title="The ORIGIN HTTP/2 Frame">[ORIGIN]</cite></a> indicates that the ORIGIN frame is sent on stream 0, this should be interpreted to mean the HTTP/3 control stream: that is, the ORIGIN frame is sent from servers to clients on the server's control stream.</p></div><div id="rfc.section.2.p.4"><p>HTTP/3 does not define a Flags field in the generic frame layout. As no flags have been defined for the ORIGIN frame, this specification does not define a mechanism for communicating such flags in HTTP/3.</p></div><section id="frame-layout"><h3 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1.</a> <a href="#frame-layout">Frame Layout</a></h3><div id="rfc.section.2.1.p.1"><p>The ORIGIN frame has a layout that is nearly identical to the layout used in HTTP/2; the information is restated here for clarity. The ORIGIN frame type is 0x0c (decimal 12), as in HTTP/2. The payload contains zero or more instances of the Origin-Entry field.</p></div><div id="rfc.figure.1"><div><pre>
0 commit comments