<?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.29 (Ruby 3.4.4) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-link-hint-04" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title>HTTP Link Hints</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-link-hint-04"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization/>
      <address>
        <email>mnot@mnot.net</email>
        <uri>https://www.mnot.net/</uri>
      </address>
    </author>
    <date/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 44?>

<t>This memo specifies "HTTP Link Hints", a mechanism for annotating Web links to HTTP(S) resources with information that otherwise might be discovered by interacting with them.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-httpapi.github.io/link-hint/draft-ietf-httpapi-link-hint.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-httpapi-link-hint/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Building Blocks for HTTP APIs Working Group mailing list (<eref target="mailto:httpapi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/httpapi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-httpapi/link-lint"/>.</t>
    </note>
  </front>
  <middle>
    <?line 49?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>HTTP <xref target="HTTP"/> clients can discover a variety of information about a resource by interacting with it. For example, the methods supported by a resource can be learned by examining the Allow header field in responses from it, and the need for authentication is conveyed with a 401 (Authentication Required) status code.</t>
      <t>Often, it can be beneficial to know this information before interacting with the resource; not only can such knowledge save time (through reduced round trips), but it can also influence the choices made by the code or user driving the interaction. For example, a user interface that presents the data from an HTTP-based API might need to know which resources the user has write access to, so that it can present the appropriate interface.</t>
      <t>This specification defines a vocabulary of HTTP link hints that allow such metadata about HTTP resources to be attached to Web links <xref target="WEB-LINKING"/>, thereby making it available before the link is followed. It also establishes a registry for future hints.</t>
      <t>Hints are just that -- they are not a contract, and are to only be taken as advisory. The runtime behaviour of the resource always overrides hinted information. For example, a client might receive a hint that the PUT method is allowed on all "widget" resources. This means that generally, the client can send a PUT to them, but a specific resource might reject a PUT based upon access control or other considerations.</t>
      <t>More fine-grained information might also be gathered by interacting with the resource (e.g., via a GET), or by another resource containing it (such as a widgets collection) or describing it (e.g., one linked to it with a "describedby" link relation).</t>
      <t>There is not a single way to convey hints with a link; rather, it is expected that this will be done by individual link serialisations (see <xref section="3.4.1" sectionFormat="of" target="WEB-LINKING"/>).</t>
      <t>Finally, these hints are not universally applicable to all links. <xref section="2.2" sectionFormat="of" target="WEB-LINKING"/> specifies that the name space of target attributes for a given link is defined by both the link relation in use, and by the serialisation in use. Therefore, to be used in a given link, these hints need to be explicitly specified by either the link relation type or the serialisation (e.g., by referencing this specification).</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
      </section>
    </section>
    <section anchor="link_hints">
      <name>HTTP Link Hints</name>
      <t>A HTTP link hint is a (key, value) tuple that describes the target resource of a Web link <xref target="WEB-LINKING"/>, or describes the link itself. The value's canonical form is expressed in subset of the data types defined by HTTP Structured Fields <xref target="STRUCTURED-FIELDS"/>.</t>
      <t>Typically, link hints are serialised in links as target attributes (<xref section="3.4.1" sectionFormat="of" target="WEB-LINKING"/>). In the Link HTTP Header, this can be done by serialising those attributes as strings. In other link formats, this requires a mapping from the canonical data model into the constraints of that format.</t>
      <t>The information in a link hint SHOULD NOT be considered valid for longer than the freshness lifetime (<xref section="4.2" sectionFormat="of" target="HTTP-CACHING"/>) of the representation that the link occurred within, and in some cases, it might be valid for a considerably shorter period.</t>
      <t>Likewise, the information in a link hint is specific to the link it is attached to. This means that if a representation is specific to a particular user, the hints on links in that representation are also specific to that user.</t>
    </section>
    <section anchor="hints">
      <name>Pre-Defined HTTP Link Hints</name>
      <section anchor="allow">
        <name>allow</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: allow</t>
          </li>
          <li>
            <t>Description: Hints the HTTP methods that can be used to interact with the target resource; equivalent to the Allow HTTP response header.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing HTTP methods (<xref section="9" sectionFormat="of" target="HTTP"/>).</t>
      </section>
      <section anchor="formats">
        <name>formats</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: formats</t>
          </li>
          <li>
            <t>Description: Hints the representation type(s) that the target resource can produce and consume, using the GET and PUT (if allowed) methods respectively.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing media types (<xref section="8.3.1" sectionFormat="of" target="HTTP"/>).</t>
      </section>
      <section anchor="accept-post">
        <name>accept-post</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: accept-post</t>
          </li>
          <li>
            <t>Description: Hints the POST request format(s) that the target resource can consume.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, with the same constraints as for "formats".</t>
        <t>When this hint is present, "POST" SHOULD be listed in the "allow" hint when present.</t>
      </section>
      <section anchor="accept-patch">
        <name>accept-patch</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: accept-patch</t>
          </li>
          <li>
            <t>Description: Hints the PATCH <xref target="PATCH"/> request format(s) that the target resource can consume; equivalent to the Accept-Patch HTTP response header.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing media types (<xref section="8.3.1" sectionFormat="of" target="HTTP"/>) that identify the acceptable patch formats (see <xref target="PATCH"/>).</t>
        <t>When this hint is present, "PATCH" SHOULD be listed in the "allow" hint, when it is present.</t>
      </section>
      <section anchor="accept-query">
        <name>accept-query</name>
        <ul spacing="normal">
          <li>
            <t>Hint name: accept-query</t>
          </li>
          <li>
            <t>Description: Hints the QUERY <xref target="QUERY"/> request format(s) that the target resource can consume;
equivalent to the Accept-Query HTTP response header.</t>
          </li>
          <li>
            <t>Content Model: Inner List (of Strings)</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing media types (<xref section="8.3.1" sectionFormat="of" target="HTTP"/>) that identify the acceptable query formats (see <xref target="QUERY"/>).</t>
        <t>When this hint is present, "QUERY" SHOLD be listed in the "allow" hint, when it is present.</t>
      </section>
      <section anchor="accept-ranges">
        <name>accept-ranges</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: accept-ranges</t>
          </li>
          <li>
            <t>Description: Hints the range-specifier(s) available for the target resource; equivalent to the Accept-Ranges HTTP response header <xref target="HTTP"/>.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing HTTP ranges-specifiers (<xref section="14.1.1" sectionFormat="of" target="HTTP"/>).</t>
      </section>
      <section anchor="accept-prefer">
        <name>accept-prefer</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: accept-prefer</t>
          </li>
          <li>
            <t>Description: Hints the preference(s) <xref target="RFC7240"/> that the target resource understands (and might act upon) in requests.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, containing preferences (<xref section="2" sectionFormat="of" target="RFC7240"/>). Note that, by its nature, a preference can be ignored by the server.</t>
      </section>
      <section anchor="precondition-req">
        <name>precondition-req</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: precondition-req</t>
          </li>
          <li>
            <t>Description: Hints that the target resource requires state-changing requests (e.g., PUT, PATCH) to include a precondition, as per <xref section="13.1" sectionFormat="of" target="HTTP"/>, to avoid conflicts due to concurrent updates.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, with possible values "etag" and "last-modified" indicating type of precondition expected.</t>
        <t>See also the 428 Precondition Required status code (<xref target="RFC6585"/>).</t>
      </section>
      <section anchor="auth-schemes">
        <name>auth-schemes</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: auth-schemes</t>
          </li>
          <li>
            <t>Description: Hints that the target resource requires authentication using the HTTP Authentication framework <xref section="11" sectionFormat="of" target="HTTP"/>.</t>
          </li>
          <li>
            <t>Content Model: Inner List of Strings</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, each corresponding to a HTTP authentication scheme (<xref section="11.1" sectionFormat="of" target="HTTP"/>).</t>
      </section>
      <section anchor="auth-realms">
        <name>auth-realms</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: auth-realms</t>
          </li>
          <li>
            <t>Description: Hints the authentication realm(s) available for those schemes that support them in the HTTP Authentication framework <xref section="11" sectionFormat="of" target="HTTP"/>.</t>
          </li>
          <li>
            <t>Content Model: Inner List (of Strings)</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be an Inner List of Strings, each indicating a protection space that the resource is a member of.</t>
      </section>
      <section anchor="status">
        <name>status</name>
        <ul spacing="normal">
          <li>
            <t>Hint Name: status</t>
          </li>
          <li>
            <t>Description: Hints the status of the target resource.</t>
          </li>
          <li>
            <t>Content Model: Token</t>
          </li>
          <li>
            <t>Specification: [this document]</t>
          </li>
        </ul>
        <t>Content MUST be a Token; possible values are:</t>
        <ul spacing="normal">
          <li>
            <t>deprecated - indicates that use of the resource is not recommended, but it is still available.</t>
          </li>
          <li>
            <t>gone - indicates that the resource is no longer available; i.e., it will return a 410 (Gone) HTTP status code if accessed.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Clients need to exercise care when using hints. For example, a naive client might send credentials to a server that uses the auth-req hint, without checking to see if those credentials are appropriate for that server.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="hint_registry">
        <name>HTTP Link Hint Registry</name>
        <t>This specification defines the HTTP Link Hint Registry. See <xref target="link_hints"/> for a general description of the function of link hints.</t>
        <t>Link hints are generic; that is, they are potentially applicable to any HTTP resource, not specific to one application of HTTP, nor to one particular format. Generally, they ought to be information that would otherwise be discoverable by interacting with the resource.</t>
        <t>Hint names MUST be composed of the lowercase letters (a-z), digits (0-9), underscores ("_") and hyphens ("-"), and MUST begin with a lowercase letter.</t>
        <t>Hint content MUST be described using valid combinations of the following types defined by HTTP Structured Fields (<xref target="STRUCTURED-FIELDS"/>):</t>
        <ul spacing="normal">
          <li>
            <t>Inner List (<xref section="3.1.2" sectionFormat="of" target="STRUCTURED-FIELDS"/>)</t>
          </li>
          <li>
            <t>Item (<xref section="3.3" sectionFormat="of" target="STRUCTURED-FIELDS"/>)</t>
          </li>
        </ul>
        <t>Hint semantics SHOULD be described in terms of the framework defined in <xref target="WEB-LINKING"/>.</t>
        <t>New hints are registered using the IETF Review process described in <xref target="RFC8126"/>. Registration of new resource hints are to use the following template:</t>
        <ul spacing="normal">
          <li>
            <t>Hint Name: [hint name]</t>
          </li>
          <li>
            <t>Description: [a short description of the hint's semantics]</t>
          </li>
          <li>
            <t>Content Model: [allowed Structured Fields types]</t>
          </li>
          <li>
            <t>Specification: [reference to specification document]</t>
          </li>
        </ul>
        <t>Initial registrations are enumerated in <xref target="hints"/>. Additionally, the "rel", "rev", "hreflang", "media", "title", and "type" hint names are reserved, so as to avoid potential clashes with link serialisations.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="HTTP">
          <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="HTTP-CACHING">
          <front>
            <title>HTTP Caching</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 defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="WEB-LINKING">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="STRUCTURED-FIELDS">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </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>
        <reference anchor="RFC7240">
          <front>
            <title>Prefer Header for HTTP</title>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This specification defines an HTTP header field that can be used by a client to request that certain behaviors be employed by a server while processing a request.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7240"/>
          <seriesInfo name="DOI" value="10.17487/RFC7240"/>
        </reference>
        <reference anchor="RFC6585">
          <front>
            <title>Additional HTTP Status Codes</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6585"/>
          <seriesInfo name="DOI" value="10.17487/RFC6585"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="PATCH">
          <front>
            <title>PATCH Method for HTTP</title>
            <author fullname="L. Dusseault" initials="L." surname="Dusseault"/>
            <author fullname="J. Snell" initials="J." surname="Snell"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>Several applications extending the Hypertext Transfer Protocol (HTTP) require a feature to do partial resource modification. The existing HTTP PUT method only allows a complete replacement of a document. This proposal adds a new HTTP method, PATCH, to modify an existing HTTP resource. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5789"/>
          <seriesInfo name="DOI" value="10.17487/RFC5789"/>
        </reference>
        <reference anchor="QUERY">
          <front>
            <title>The HTTP QUERY Method</title>
            <author fullname="Julian Reschke" initials="J." surname="Reschke">
              <organization>greenbytes GmbH</organization>
            </author>
            <author fullname="James M. Snell" initials="J. M." surname="Snell">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Mike Bishop" initials="M." surname="Bishop">
              <organization>Akamai</organization>
            </author>
            <date day="19" month="May" year="2025"/>
            <abstract>
              <t>   This specification defines a new HTTP method, QUERY, as a safe,
   idempotent request method that can carry request content.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-safe-method-w-body-11"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <?line 230?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Jan Algermissen, Mike Amundsen, Bill Burke, Graham Klyne, Leif Hedstrom, Jeni Tennison, Erik Wilde and Jorge Williams for their suggestions and feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
