<?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.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pardue-capsule-ext-guidance-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="HTTP Capsule Extension Guidance">Guidance for HTTP Capsule Protocol Extensibility</title>
    <seriesInfo name="Internet-Draft" value="draft-pardue-capsule-ext-guidance-01"/>
    <author fullname="Lucas Pardue">
      <organization>Cloudflare</organization>
      <address>
        <email>lucas@lucaspardue.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 44?>

<t>This document updates RFC 9297 with further guidance for extensibility of the
HTTP Capsule Protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://LPardue.github.io/draft-pardue-capsule-ext-guidance/draft-pardue-capsule-ext-guidance.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-pardue-capsule-ext-guidance/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/LPardue/draft-pardue-capsule-ext-guidance"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Capsule Protocol <xref target="CAPSULE"/> is a sequence of type-length-value
tuples that definitions of new HTTP upgrade tokens can choose to use. It allows
endpoints to reliably communicate request-related information end-to-end on
HTTP request streams, even in the presence of HTTP intermediaries.</t>
      <t>Clients can indicate in requests that they want the data stream to use the
Capsule Protocol by providing an upgrade token and/or a Capsule-Protocol header
field; see <xref section="3" sectionFormat="of" target="CAPSULE"/>. Servers confirm Capsule Protocol usage by
returning a response in the 2xx (Successful) range, possibly including a
Capsule-Protocol header field.</t>
      <t>The process of initiating the Capsule Protocol for any given data stream
identifies the purpose of usage and the Capsule types that endpoints can send or
receive.</t>
      <t>This document updates RFC 9297 with further guidance for extensibility of the
Capsule Protocol.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="the-extensibility-of-capsule-type-usage">
      <name>The Extensibility of Capsule Type Usage</name>
      <t>In order to support extensibility, <xref section="3.2" sectionFormat="of" target="CAPSULE"/> requires that:</t>
      <ul empty="true">
        <li>
          <t>Endpoints that receive a Capsule with an unknown Capsule Type <bcp14>MUST</bcp14> silently
drop that Capsule and skip over it to parse the next Capsule.</t>
        </li>
      </ul>
      <t>The first ambiguity in this text comes from the term "endpoint". It relates to
the resource that the Capsule Protocol negotiation applies to, not the general
HTTP endpoint. In other words, known or unknown types are scoped only to the
request stream Capsule Protocol usage, nothing else.</t>
      <t>For example, proxying UDP in HTTP <xref target="UDP-PROXYING"/> makes use of the
upgrade token "connect-udp" to enable the Connect Protocol. It describes how
DATAGRAM capsules (<xref section="3.5" sectionFormat="of" target="CAPSULE"/>) can be used. Use of other capsule
types on that data stream is undefined, the expectation being that they are
ignored on receipt.</t>
      <t>Similarly, proxying IP in HTTP <xref target="IP-PROXYING"/> makes use of the upgrade
token "connect-ip" to enable the Connect Protocol. It defines ADDRESS_ASSIGN,
ADDRESS_REQUEST, and ROUTE_ADVERTISEMENT capsules (<xref section="4.7" sectionFormat="of" target="IP-PROXYING"/>) and describes how these can be used together with DATAGRAM
capsules.</t>
      <t>An HTTP server could support both UDP and IP proxying and it's implementation
would be able to understand all four capsule types. However, use of
ADDRESS_ASSIGN, for example, on a "connect-udp" data stream is undefined by
<xref target="UDP-PROXYING"/>.</t>
      <t>The <xref target="CAPSULE"/> document requires updated text to resolve this ambuguity. Should
this document be adopted, consensus on the resolution can be established.</t>
      <section anchor="negotiating-additional-capsule-type-usage">
        <name>Negotiating Additional Capsule Type Usage</name>
        <t>The second ambiguity with the text in <xref section="3.2" sectionFormat="of" target="CAPSULE"/> comes from
ambiguity of intent. Silent dropping of unknown types new can be safely used by
extensions without prior arrangement or negotiation.</t>
        <t>However, some extensions might be built on the assumption that a capsule is
processed by the recipient. For example to send a capsule that elicits some
response message or behavioural change. Such extensions can benefit from some
form of explicit negotiation.</t>
        <t>There are several approaches to negotiating the use of new capsule types within
the scope of a request stream Capsule Protocol. This document does not mandate
any specific method but advises protocol designers to use negotiation patterns
that fit the end-to-end nature of the Capsule Protocol, where endpoints generate
and process capsules.</t>
        <t>Specifically SETTINGS negotiation (<xref section="5.5" sectionFormat="of" target="RFC9113"/> and <xref section="9" sectionFormat="of" target="RFC9114"/>) could be used to extend a connection, changing the scope of Capsule
Protocol knowledge for all request streams or a set of upgrade tokens. However,
the SETTINGS are not an end-to-end mechanism and therefore this method of
negotiation does not work when intermediaries are involved.</t>
        <t>Negotiation of new capsule types via new upgrade tokens is an end-to-end
mechanism.  However, while HTTP/1.x clients can offer several token values in
the Upgrade mechanism (<xref section="7.8" sectionFormat="of" target="RFC9110"/>), extended CONNECT
(<xref target="EXT-CONNECT2"/> and <xref target="EXTCONNECT3"/>) does not support this
possibility. While HTTP/2 or HTTP/3 clients could use multiple separate requests
in order to attempt the selection of a most-preferred upgrade token, this
requires additional round trips which might introduce undesirable delays.</t>
        <t>Header fields provide an end-to-end negotiation mechanism. The Capsule-Protocol
header field is itself extensible and parameters could, in theory, be used to
negotiate extensions. However, Capsule-Protocol requires that unknown parameters
are ignored, so extension designers ought to use an offer-echo pattern that
confirms the recipient did process the parameter. Also note that use of
Capsule-Protocol is optional and the upgrade tokens can mandate use of the
Capsule Protocol without this header field. In such cases, a new header field
can be defined to support extension negotiation.</t>
      </section>
    </section>
    <section anchor="generic-capsuleerror-code-for-http2-and-http3">
      <name>Generic CAPSULE_ERROR code for HTTP/2 and HTTP/3</name>
      <t><xref section="3.3" sectionFormat="of" target="CAPSULE"/> describes error handling for all HTTP versions. It
defined the H3_DATAGRAM_ERROR code for HTTP/3, with the description "Datagram or
Capsule Protocol parse error". Subsequent work that relies on using the Capsule
protocol has identified that there are situations where using H3_DATAGRAM_ERROR
can be confusing, such as where DATAGRAM capsules are expressly not allowed, but
some other processing error related to capsules occurs. Furthermore, there is no
registered HTTP/2 error code to articulate capsule-related errors (instead, this
is delegated to HTTP/2 generic malformed handling defined in <xref section="8.1.1" sectionFormat="of" target="RFC9113"/>).</t>
      <t>This document registers two generic error codes, CAPSULE_ERROR and
H3_CAPSULE_ERROR (values TBD), for HTTP/2 and HTTP/3 respectively. This can be
used as a general-purpose error for anything related to Capsule protocol
handling, when a more-specific error is not available or is not preferred.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The ability to send capsule types that the peer may not know, and is therefore
required to ignore, can be abused to cause a peer to expend additional
processing time. This could become a burden when used unnecessarily or to
excess.</t>
      <t>An endpoint that does not monitor such behavior exposes itself to a risk of
denial-of-service attack. Implementations <bcp14>SHOULD</bcp14> track the use of unknown
capsule types and set limits on their use. An endpoint <bcp14>MAY</bcp14> treat activity that
is suspicious as a reason to close a connection, but false positives will result
in disrupting valid connections and requests. For guidance on closing
connections see <xref section="9.6" sectionFormat="of" target="RFC9112"/>, <xref section="5.5" sectionFormat="of" target="RFC9113"/>, and
<xref section="9" sectionFormat="of" target="RFC9114"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO: register error codes</t>
    </section>
  </middle>
  <back>
    <displayreference target="RFC9110" to="HTTP"/>
    <displayreference target="RFC9112" to="HTTP/1.1"/>
    <displayreference target="RFC9113" to="HTTP/2"/>
    <displayreference target="RFC9114" to="HTTP/3"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="CAPSULE">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.</t>
              <t>In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.</t>
              <t>HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9297"/>
          <seriesInfo name="DOI" value="10.17487/RFC9297"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9112">
          <front>
            <title>HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
              <t>This document obsoletes portions of RFC 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="99"/>
          <seriesInfo name="RFC" value="9112"/>
          <seriesInfo name="DOI" value="10.17487/RFC9112"/>
        </reference>
        <reference anchor="RFC9113">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
            <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="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <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="UDP-PROXYING">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9298"/>
          <seriesInfo name="DOI" value="10.17487/RFC9298"/>
        </reference>
        <reference anchor="IP-PROXYING">
          <front>
            <title>Proxying IP in HTTP</title>
            <author fullname="T. Pauly" initials="T." role="editor" surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="A. Chernyakhovsky" initials="A." surname="Chernyakhovsky"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="October" year="2023"/>
            <abstract>
              <t>This document describes how to proxy IP packets in HTTP. This protocol is similar to UDP proxying in HTTP but allows transmitting arbitrary IP packets. More specifically, this document defines a protocol that allows an HTTP client to create an IP tunnel through an HTTP server that acts as an IP proxy. This document updates RFC 9298.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9484"/>
          <seriesInfo name="DOI" value="10.17487/RFC9484"/>
        </reference>
        <reference anchor="EXT-CONNECT2">
          <front>
            <title>Bootstrapping WebSockets with HTTP/2</title>
            <author fullname="P. McManus" initials="P." surname="McManus"/>
            <date month="September" year="2018"/>
            <abstract>
              <t>This document defines a mechanism for running the WebSocket Protocol (RFC 6455) over a single stream of an HTTP/2 connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8441"/>
          <seriesInfo name="DOI" value="10.17487/RFC8441"/>
        </reference>
        <reference anchor="EXTCONNECT3">
          <front>
            <title>Bootstrapping WebSockets with HTTP/3</title>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The mechanism for running the WebSocket Protocol over a single stream of an HTTP/2 connection is equally applicable to HTTP/3, but the HTTP-version-specific details need to be specified. This document describes how the mechanism is adapted for HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9220"/>
          <seriesInfo name="DOI" value="10.17487/RFC9220"/>
        </reference>
      </references>
    </references>
    <?line 207?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>David Schinazi and Tommy Pauly are capsule enthusiasts that suggested some ideas
leading to the genesis of this document</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
BiEAAA==

-->

</rfc>
