<?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-rfc version 1.6.11 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpbis-origin-h3-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.10 -->
  <front>
    <title abbrev="ORIGIN in HTTP/3">The ORIGIN Extension in HTTP/3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-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">
      <name>Introduction</name>
      <t>Existing RFCs define extensions to HTTP/2 <xref target="HTTP2"/> which remain useful in HTTP/3.
<xref section="A.2.3" sectionFormat="of" target="HTTP3"/> describes the required updates
for HTTP/2 frames to be used with HTTP/3.</t>
      <t><xref target="ORIGIN"/> 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="frame-origin">
      <name>The ORIGIN HTTP/3 Frame</name>
      <t>The ORIGIN HTTP/3 frame allows a server to indicate what origin(s)
(<xref target="RFC6454"/>) the server would like the client to consider as members of the
Origin Set (<xref section="2.3" sectionFormat="of" target="ORIGIN"/>) 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"/> 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"/>.  The ORIGIN frame type is 0xc (decimal 12),
as in HTTP/2.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This document introduces no new security considerations beyond those discussed
in <xref target="ORIGIN"/> and <xref target="HTTP3"/>.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document registers a frame type in the "HTTP/3 Frame Type"
registry (<xref target="HTTP3"/>).</t>
      <table anchor="iana-frame-table">
        <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"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="HTTP2">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <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 latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="HTTP3">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <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.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </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:
H4sIAAAAAAAAA41W3W/bNhB/519xcx6WAJbn2GmxCii2rE23PPQDSbA9DMNA
SSebiERqJBVHU/S/7/ghW04KdAaKqtTx7vdxd2qSJMwKW2EKd1uEzzfXv15/
gqtHi9IIJUFI+O3u7ssPa8azTONDOoYcXhQql7ymBIXmpU0E2jLZWttkwiRK
i42QyXadLJes4Jai+veXd1cDy+kfG6W7FIwtGBONTsHq1tjVcvlmuWJcI0/h
smkqQaEExbCd0vcbrdom9aUpP7vHjk6LFK6lRS3RJu8dCMaM5bL4m1dKUskO
DWtECn9alc/BKG01loaeuto9/MUYb+1W6ZQBJPQHiJ1J4eMCfhFmqxp/FDh+
FPc4PVV6w6X41yMkuPe85sK/QHqoUqgzH/szPuA/LZaqXWTImFS6pisP6Co6
LqvUX7r58O7N+fk6Hq6nhxekkSwP9xhLkgR4ZqzmORGeuFdqggoUGxxagTBA
1XlVdcCDoFmFYFV0cA5Za5lELIw7zBAMNlyTQXRB40YY0haLBXUIZSK72xql
hQJNrkWGdGlfmz2rvV4EnLUoioqInzijtCra3AkG/UmjFWGpzcDY1SMVEnLj
CFMZLIVEwLETzR7vCvreazYMsNuKfEsYSWwJrcGyrQ6duWB9f4uh0uVitViD
KoOwdPMYvSZ9BHGEtnFdathEPU9pVIZqFLATdnvg1/ffBfJvCfiP6/Vrn92h
D7ljmqk58whcyMJ1NwXuttyyMC0GqPeBP1D/eJ8IPYcNmS4hV1IGQguAa7sv
w8GQcBUeQWa2a3DhNJ/0RkANH7xN/YkPjFM6HDVRDAx+UuuonS+D+gG102KE
7pFDyHBqzthp3/9EOry+eHUxDGdegHhpp9qqgMoNkDvNK+G6iFIRKyMKiuAG
aqwz1MY5RUHss88Lt2jh9GBmtDIgdVWcWz7nXh/vEd2MOpO2ed5qQ3L8saVm
HoXS6MEZuKWVwGtY+lTRcY0VESwcRE/DOroR2KHSfJTqYEbDhXaBrRQFdZUP
4xUlcDUM5CQnpZ1RDpqFisXzWaRBM9a0ulEGyeSAtu9HrpOWsU54+2zsGW0b
J7MfYpKXlBipzUPuQ4BwO7PRGDnWyOWhYdcswouwCcuLFeOyuSKlVnV02c9J
sNa44k6r8OZ7A88yhn6reKdaC7SuKUXNpRX5aH8s0/CuUrzwY0F94iJITe8K
iTQ6Mm396EXhdsF+PIfhaxzckDgiy8ccTgvMRU25z1dnc0bdOK6SlR8jar9W
C9vBu9iw4btEY2TiGz9C0x0p4rYju6QCiTsYQ/ddH5Nk2CmSIFAqhMlbQ6uG
HRPwKoXtRzvMg7q+/HT5EpDgkr8AM65y16JT8sH12dFquKM3MxZu6M4NXyx6
RlWfIHn2g/EIXr6bRtHVQ34Ivyf4nVctuofbhgwo4wcfjn5PX6+aur/Tb1eN
nk/ygbfcPfT90Rocvl31/3HtU/BGJCG9DV9d95+tt7Ob/WcVXuhuZkP4amY8
v2f/AaL0pi2iCQAA

-->

</rfc>
