<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bishop-httpbis-origin-h3-00" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.9.1 -->
  <front>
    <title abbrev="ORIGIN in HTTP/3">The ORIGIN Extension in HTTP/3</title>
    <seriesInfo name="Internet-Draft" value="draft-bishop-httpbis-origin-h3-00"/>
    <author initials="M." surname="Bishop" fullname="Mike Bishop">
      <organization>Akamai</organization>
      <address>
        <email>mbishop@evequefou.be</email>
      </address>
    </author>
    <date/>
    <area>Applications</area>
    <workgroup>HTTPbis</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The ORIGIN frame for HTTP/2 is equally applicable to HTTP/3, but
needs to be separately registered. This document describes the ORIGIN
frame for HTTP/3.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="problems" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Existing RFCs define extensions to HTTP/2 <xref target="HTTP2" format="default"/> which remain useful in HTTP/3.
<xref section="A.2.3" sectionFormat="of" target="HTTP3" format="default"/> describes the required updates
for HTTP/2 frames to be used with HTTP/3.</t>
      <t><xref target="ORIGIN" format="default"/> defines the HTTP/2 ORIGIN frame, which indicates what
origins are available on a given connection.  It defines a single HTTP/2 frame
type.</t>
    </section>
    <section anchor="basic-mapping-conventions" numbered="true" toc="default">
      <name>Basic Mapping Conventions</name>
    </section>
    <section anchor="frame-origin" numbered="true" toc="default">
      <name>The ORIGIN HTTP/3 Frame</name>
      <t>The ORIGIN HTTP/3 frame allows a server to indicate what origin(s)
(<xref target="RFC6454" format="default"/>) the server would like the client to consider as members of the
Origin Set (<xref section="2.3" sectionFormat="of" target="ORIGIN" format="default"/>) for the connection within which it
occurs.</t>
      <t>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.  Where <xref target="ORIGIN" format="default"/> indicates that the ORIGIN frame
should be sent on Stream 0, this should be interpreted to mean the HTTP/3
control stream.  The ORIGIN frame is sent from servers to clients on the
server's control stream.</t>
      <t>The layout and semantics of the frame payload are identical to those of the
HTTP/2 frame defined in <xref target="ORIGIN" format="default"/>.  The ORIGIN frame type is 0xc (decimal 12),
as in HTTP/2.</t>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document introduces no new security considerations beyond those discussed
in <xref target="ORIGIN" format="default"/> and <xref target="HTTP3" format="default"/>.</t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document registers a frame type in the "HTTP/3 Frame Type"
registry (<xref target="HTTP3" format="default"/>).</t>
      <table anchor="iana-frame-table" align="center">
        <name>Registered HTTP/3 Frame Types</name>
        <thead>
          <tr>
            <th align="left">Frame Type</th>
            <th align="center">Value</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ORIGIN</td>
            <td align="center">0xc</td>
            <td align="left">
              <xref target="frame-origin" format="default"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="HTTP2">
          <front>
            <title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
            <author fullname="Mike Belshe">
	 </author>
            <author fullname="Roberto Peon">
	 </author>
            <author fullname="Martin Thomson">
	 </author>
            <date day="10" month="February" year="2015"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients.

 This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax. HTTP's existing semantics remain unchanged.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-http2-17"/>
        </reference>
        <reference anchor="HTTP3">
          <front>
            <title>Hypertext Transfer Protocol Version 3 (HTTP/3)</title>
            <author fullname="Mike Bishop">
              <organization>Akamai</organization>
            </author>
            <date day="2" month="February" year="2021"/>
            <abstract>
              <t>   The QUIC transport protocol has several features that are desirable
   in a transport for HTTP, such as stream multiplexing, per-stream flow
   control, and low-latency connection establishment.  This document
   describes a mapping of HTTP semantics over QUIC.  This document also
   identifies HTTP/2 features that are subsumed by QUIC, and describes
   how HTTP/2 extensions can be ported to HTTP/3.

DO NOT DEPLOY THIS VERSION OF HTTP

   DO NOT DEPLOY THIS VERSION OF HTTP/3 UNTIL IT IS IN AN RFC.  This
   version is still a work in progress.  For trial deployments, please
   use earlier versions.

Note to Readers

   Discussion of this draft takes place on the QUIC working group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=quic.

   Working Group information can be found at https://github.com/quicwg;
   source code and issues list for this draft can be found at
   https://github.com/quicwg/base-drafts/labels/-http.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-http-34"/>
        </reference>
        <reference anchor="ORIGIN">
          <front>
            <title>The ORIGIN HTTP/2 Frame</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="E. Nygren" initials="E." surname="Nygren">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies the ORIGIN frame for HTTP/2, to indicate what origins are available on a given connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8336"/>
          <seriesInfo name="DOI" value="10.17487/RFC8336"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth">
              <organization/>
            </author>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents.  Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites.  In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string.  It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request.   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAOagL2EAA41W3W/bNhB/519xcx6WAJbn2W2xCSi2tEm3PKQtkmB7GIaB
kk42EYlUSSqOpuh/3/FDtpwU6AwEVqTj3e/j7uQkSZgVtsIU7rYIn26ufrv6
CJePFqURSoKQ8Pvd3ecf1oxnmcaHdAw5PChULnlNCQrNS5tkwmxVk2ytbegy
UVpshEy262S5ZAW3FNdfnN9dDiynfzZKdykYWzAmGp2C1a2xq+Xy5+WKcY08
hfOmqQSFEhjDdkrfb7Rqm9QXp/zsHju6W6RwJS1qiTa5cDAYM5bL4h9eKUkl
OzSsESn8ZVU+B6O01Vgauupqd/E3Y7y1W6VTBpDQHxA/k8L1At55Ov5WYHkt
7nF6V+kNl+Jfj5Dg3vOaC/8A6aJKoQ6C/IoP+KXFUrWLDBmTStd05AFdRcdl
lfpDV8nFQqAt9/q571WMWT+L+dKK3AeQerI8ZGQsSRLgmbGa5yTFxNlSEwmg
2ODeCoQBwsWrqgMepM4qBKuiu3PIWsskYmHczQzBYMM1WUcHNG6EIdWxWFD3
UCZqhbZGaaFAk2uRIR3a12bPaq8XAWctiqIiSU6chVoVbe6khP6k0Yqw1GZg
7PKRCgm5gZsP76kMlkIi4NilZo93BX3v1RwG2G1FviWMZIOE1mDZVoeuXbC+
v8VQ6XyxWqxBlUFjOnmMXpM+gjhC27j+NWyinqc0KkM1CtgJuz3w6/vvAvm3
BPyn9fqNz+7Qh9wxzdSceQQuZOH6ngJ3W25ZmCMDNBXAH6izvE+EnsOGTJeQ
KykDoQW1iN2X4WBIuAqPIDPbNbhwmr/jRuRwTd47ed8rSbnCsNHDSeMESvDB
e9if+CxxuIejDouBwWzqK7XzGFA/oHZCjbw8LQgZTs0ZO+37X0ikN69evxqG
M69OPLRTbVVA5ebO3c0r4VqMUhFlIwqK4AZqrDPUxtlIQeyTzwu3aOH04HT0
OSB1VZyVPudePG8gnYwmkPB53mpDWv25pU4fVdTowRm4pU3Ca1j6VLEdNFZE
sHAQPQ3r6EZgh0rzUaqDUw0X2gW2UhTUcj6MV5TA1TCQk5yUdkY5aFAqFu/P
Ig0awKbVjTJIHRDQ9v3IddJP1glvn+0ERkvKyewnnOQlJUZq85D7ECDcqm00
Ro41cnno5jWL8CJswvJi/7hsrkipVR1d9kMUrDWuuNMqPPnewLOMod8q3qnW
Am15SlFz6tp8tD+WaXhXKV74maE+cRGkpneFRBodmc5F9KJwi2I/u8PwNQ5u
ghyR5WMOpwXmoqbcP67O5oy6cdwzKz9j1H6tFrZz4+UbNrzOaIxMfOJHaLpA
RVyFZJdUIHEHY+i+62OSDDtFEgRKhTB5a2gPsWMCXqWwGmnBeVBX5x/PXwIS
XPIXYMY971p0Sj64PjtaDXf0ZMbCCd254YtFz6jqEyTPPjDegpfPplF09JAf
wucJ/uBVi+7itiEDyvg7AY4+T1+vmrrv9NtVo+eTfOAtdxd9f7QGh29X/X9c
+xS8EUlIb8Mr2f1Kezu72b9z4YXuZjaEV2rG83v2H/71KvDbCQAA

-->

</rfc>
