<?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.9 (Ruby 3.0.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-httpbis-retrofit-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.6 -->
  <front>
    <title abbrev="Retrofit Structured Fields">Retrofit Structured Fields for HTTP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-retrofit-02"/>
    <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
      <organization/>
      <address>
        <postal>
          <postalLine>Prahran</postalLine>
          <postalLine>Australia</postalLine>
        </postal>
        <email>mnot@mnot.net</email>
        <uri>https://www.mnot.net/</uri>
      </address>
    </author>
    <date/>
    <keyword>structured fields</keyword>
    <keyword>http</keyword>
    <abstract>
      <t>This specification nominates a selection of existing HTTP fields as having syntax that is compatible with Structured Fields, so that they can be handled as such (subject to certain caveats).</t>
      <t>To accommodate some additional fields whose syntax is not compatible, it also defines mappings of their semantics into new Structured Fields. It does not specify how to negotiate their use.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-httpbis-retrofit/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        HTTP Working Group mailing list (<eref target="mailto:ietf-http-wg@w3.org"/>),
        which is archived at <eref target="https://lists.w3.org/Archives/Public/ietf-http-wg/"/>.
        Working Group information can be found at <eref target="https://httpwg.org/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/httpwg/http-extensions/labels/retrofit"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Structured Field Values for HTTP <xref target="STRUCTURED-FIELDS"/> introduced a data model with associated parsing and serialization algorithms for use by new HTTP field values. Fields that are defined as Structured Fields can realise a number of benefits, including:</t>
      <ul spacing="normal">
        <li>Improved interoperability and security: precisely defined parsing and serialisation algorithms are typically not available for fields defined with just ABNF and/or prose.</li>
        <li>Reuse of common implementations: many parsers for other fields are specific to a single field or a small family of fields.</li>
        <li>Canonical form: because a deterministic serialisation algorithm is defined for each type, Structure Fields have a canonical representation.</li>
        <li>Enhanced API support: a regular data model makes it easier to expose field values as a native data structure in implementations.</li>
        <li>Alternative serialisations: While <xref target="STRUCTURED-FIELDS"/> defines a textual serialisation of that data model, other, more efficient serialisations of the underlying data model are also possible.</li>
      </ul>
      <t>However, a field needs to be defined as a Structured Field for these benefits to be realised. Many existing fields are not, making up the bulk of header and trailer fields seen in HTTP traffic on the internet.</t>
      <t>This specification defines how a selection of existing HTTP fields can be handled as Structured Fields, so that these benefits can be realised -- thereby making them Retrofit Structured Fields.</t>
      <t>It does so using two techniques. <xref target="compatible"/> lists compatible fields -- those that can be handled as if they were Structured Fields due to the similarity of their defined syntax to that in Structured Fields. <xref target="mapped"/> lists mapped fields -- those whose syntax needs to be transformed into an underlying data model which is then mapped into that defined by Structured Fields.</t>
      <t>Note that while implementations can parse and serialise compatible fields as Structured Fields subject to the caveats in <xref target="compatible"/>, a sender cannot generate mapped fields from <xref target="mapped"/> and expect them to be understood and acted upon by the recipient without prior negotiation. This specification does not define such a mechanism.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</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>
      </section>
    </section>
    <section anchor="compatible">
      <name>Compatible Fields</name>
      <t>The HTTP fields listed in <xref target="compatible-fields"/> can usually have their values handled as Structured Fields according to the listed parsing and serialisation algorithms in <xref target="STRUCTURED-FIELDS"/>, subject to the listed caveats.</t>
      <t>The listed types are chosen for compatibility with the defined syntax of the field as well as with actual internet traffic. However, not all instances of these fields will successfully parse. This might be because the field value is clearly invalid, or it might be because it is valid but not parseable as a Structured Field.</t>
      <t>An application using this specification will need to consider how to handle such field values. Depending on its requirements, it might be advisable to reject such values, treat them as opaque strings, or attempt to recover a structured value from them in an ad hoc fashion.</t>
      <table anchor="compatible-fields">
        <name>Compatible Fields</name>
        <thead>
          <tr>
            <th align="left">Field Name</th>
            <th align="left">Structured Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Accept</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Accept-Encoding</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Accept-Language</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Accept-Patch</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Accept-Post</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Accept-Ranges</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Allow-Credentials</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Allow-Headers</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Allow-Methods</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Allow-Origin</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Expose-Headers</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Max-Age</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Request-Headers</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Access-Control-Request-Method</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Age</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Allow</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">ALPN</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Alt-Svc</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Alt-Used</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Cache-Control</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">CDN-Loop</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Clear-Site-Data</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Connection</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Content-Encoding</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Content-Language</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Content-Length</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Content-Type</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Cross-Origin-Resource-Policy</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Expect</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Expect-CT</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Forwarded</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Host</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Keep-Alive</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Max-Forwards</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Origin</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Pragma</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Prefer</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Preference-Applied</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Retry-After</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Sec-WebSocket-Extensions</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Sec-WebSocket-Protocol</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Sec-WebSocket-Version</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Server-Timing</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Surrogate-Control</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">TE</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Timing-Allow-Origin</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Trailer</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Transfer-Encoding</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Vary</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">X-Content-Type-Options</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">X-Frame-Options</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">X-XSS-Protection</td>
            <td align="left">List</td>
          </tr>
        </tbody>
      </table>
      <t>Note the following caveats regarding compatibility:</t>
      <dl>
        <dt>Parameter and Dictionary keys:</dt>
        <dd>
          <t>HTTP parameter names are case-insensitive (per <xref section="5.6.6" sectionFormat="of" target="HTTP"/>), but Structured Fields require them to be all-lowercase. Although the vast majority of parameters seen in typical traffic are all-lowercase, compatibility can be improved by force-lowercasing parameters when encountered.
Likewise, many Dictionary-based fields (e.g., Cache-Control, Expect-CT, Pragma, Prefer, Preference-Applied, Surrogate-Control) have case-insensitive keys, and compatibility can be improved by force-lowercasing them.</t>
        </dd>
        <dt>Parameter delimitation:</dt>
        <dd>
          <t>The parameters rule in HTTP (see <xref section="5.6.6" sectionFormat="of" target="HTTP"/>) allows whitespace before the ";" delimiter, but Structured Fields does not. Compatibility can be improved by allowing such whitespace.</t>
        </dd>
        <dt>String quoting:</dt>
        <dd>
          <t><xref section="5.6.4" sectionFormat="of" target="HTTP"/> allows backslash-escaping most characters in quoted strings, whereas Structured Field Strings only escape "\" and DQUOTE. Compatibility can be improved by unescaping other characters before processing as Strings.</t>
        </dd>
        <dt>Token limitations:</dt>
        <dd>
          <t>In Structured Fields, tokens are required to begin with an alphabetic character or "*", whereas HTTP tokens allow a wider range of characters. This prevents use of mapped values that begin with one of these characters. For example, media types, field names, methods, range-units, character and transfer codings that begin with a number or special character other than "*" might be valid HTTP protocol elements, but will not be able to be parsed as Structured Field Tokens.</t>
        </dd>
        <dt>Integer limitations:</dt>
        <dd>
          <t>Structured Fields Integers can have at most 15 digits; larger values will not be able to be represented in them.</t>
        </dd>
        <dt>IPv6 Literals:</dt>
        <dd>
          <t>Fields whose values can contain IPv6 literal addresses (such as CDN-Loop, Host, and Origin) are not compatible when those values are parsed as Structured Fields Tokens, because the brackets used to delimit them are not allowed in Tokens.</t>
        </dd>
        <dt>Empty Field Values:</dt>
        <dd>
          <t>Empty and whitespace-only field values are considered errors in Structured Fields. For compatible fields, an empty field indicates that the field should be silently ignored.</t>
        </dd>
        <dt>Alt-Svc:</dt>
        <dd>
          <t>Some ALPN tokens (e.g., <tt>h3-Q43</tt>) do not conform to key's syntax. Since the final version of HTTP/3 uses the <tt>h3</tt> token, this shouldn't be a long-term issue, although future tokens may again violate this assumption.</t>
        </dd>
        <dt>Content-Length:</dt>
        <dd>
          <t>Content-Length is defined as a List because it is not uncommon for implementations to mistakenly send multiple values. See <xref section="8.6" sectionFormat="of" target="HTTP"/> for handling requirements.</t>
        </dd>
        <dt>Retry-After:</dt>
        <dd>
          <t>Only the delta-seconds form of Retry-After is supported; a Retry-After value containing a http-date will need to be either converted into delta-seconds or represented as a raw value.</t>
        </dd>
      </dl>
    </section>
    <section anchor="mapped">
      <name>Mapped Fields</name>
      <t>Some HTTP field values have syntax that cannot be successfully parsed as Structured Fields. Instead, it is necessary to map them into a separate Structured Field with an alternative name.</t>
      <t>For example, the Date HTTP header field carries a date:</t>
      <sourcecode type="http-message"><![CDATA[
Date: Sun, 06 Nov 1994 08:49:37 GMT
]]></sourcecode>
      <t>Its value is more efficiently represented as an Integer number of delta seconds from the Unix epoch (00:00:00 UTC on 1 January 1970, minus leap seconds). Thus, the example above would be mapped to:</t>
      <sourcecode type="http-message"><![CDATA[
SF-Date: 784072177
]]></sourcecode>
      <t>As in <xref target="compatible"/>, these fields are unable to carry values that are not valid Structured Fields, and so an application using this specification will need to how to support such values. Typically, handling them using the original field name is sufficient.</t>
      <t>Each field name listed below indicates a replacement field name and a means of mapping its original value into a Structured Field.</t>
      <section anchor="urls">
        <name>URLs</name>
        <t>The field names in <xref target="url-fields"/> (paired with their mapped field names) have values that can be mapped into Structured Fields by treating the original field's value as a String.</t>
        <table anchor="url-fields">
          <name>URL Fields</name>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Mapped Field Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Content-Location</td>
              <td align="left">SF-Content-Location</td>
            </tr>
            <tr>
              <td align="left">Location</td>
              <td align="left">SF-Location</td>
            </tr>
            <tr>
              <td align="left">Referer</td>
              <td align="left">SF-Referer</td>
            </tr>
          </tbody>
        </table>
        <t>For example, a Location field could be mapped as:</t>
        <sourcecode type="http-message"><![CDATA[
SF-Location: "https://example.com/foo"
]]></sourcecode>
      </section>
      <section anchor="dates">
        <name>Dates</name>
        <t>The field names in <xref target="date-fields"/> (paired with their mapped field names) have values that can be mapped into Structured Fields by parsing their payload according to <xref section="5.6.7" sectionFormat="of" target="HTTP"/> and representing the result as an Integer number of seconds delta from the Unix Epoch (00:00:00 UTC on 1 January 1970, minus leap seconds).</t>
        <table anchor="date-fields">
          <name>Date Fields</name>
          <thead>
            <tr>
              <th align="left">Field Name</th>
              <th align="left">Mapped Field Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Date</td>
              <td align="left">SF-Date</td>
            </tr>
            <tr>
              <td align="left">Expires</td>
              <td align="left">SF-Expires</td>
            </tr>
            <tr>
              <td align="left">If-Modified-Since</td>
              <td align="left">SF-IMS</td>
            </tr>
            <tr>
              <td align="left">If-Unmodified-Since</td>
              <td align="left">SF-IUS</td>
            </tr>
            <tr>
              <td align="left">Last-Modified</td>
              <td align="left">SF-LM</td>
            </tr>
          </tbody>
        </table>
        <t>For example, an Expires field could be mapped as:</t>
        <sourcecode type="http-message"><![CDATA[
SF-Expires: 1571965240
]]></sourcecode>
      </section>
      <section anchor="etags">
        <name>ETags</name>
        <t>The field value of the ETag header field can be mapped into the SF-ETag Structured Field by representing the entity-tag as a String, and the weakness flag as a Boolean "w" parameter on it, where true indicates that the entity-tag is weak; if 0 or unset, the entity-tag is strong.</t>
        <t>For example:</t>
        <sourcecode type="http-message"><![CDATA[
SF-ETag: "abcdef"; w=?1
]]></sourcecode>
        <t>If-None-Match's field value can be mapped into the SF-INM Structured Field, which is a List of the structure described above.</t>
        <t>For example:</t>
        <sourcecode type="http-message"><![CDATA[
SF-INM: "abcdef"; w=?1, "ghijkl"
]]></sourcecode>
      </section>
      <section anchor="links">
        <name>Links</name>
        <t>The field value of the Link header field <xref target="RFC8288"/> can be mapped into the SF-Link List Structured Field by considering the URI-Reference as a String, and link-param as Parameters.</t>
        <t>For example:</t>
        <sourcecode type="http-message"><![CDATA[
SF-Link: "/terms"; rel="copyright"; anchor="#foo"
]]></sourcecode>
      </section>
      <section anchor="cookies">
        <name>Cookies</name>
        <t>The field values of the Cookie and Set-Cookie fields <xref target="COOKIES"/> can be mapped into the SF-Cookie Structured Field (a List) and SF-Set-Cookie Structured Field (a Dictionary), respectively.</t>
        <t>In each case, cookie names are Tokens. Their values are Strings, unless they can be represented accurately and unambiguously using the textual representation of another structured types (e.g., an Integer or Decimal).</t>
        <t>Set-Cookie parameters map to Parameters on the appropriate SF-Set-Cookie member, with the parameter name being forced to lowercase. Set-Cookie parameter values are Strings unless a specific type is defined for them. This specification defines the parameter types in <xref target="cookie-params"/>.</t>
        <table anchor="cookie-params">
          <name>Set-Cookie Parameter Types</name>
          <thead>
            <tr>
              <th align="left">Parameter Name</th>
              <th align="left">Structured Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HttpOnly</td>
              <td align="left">Boolean</td>
            </tr>
            <tr>
              <td align="left">Expires</td>
              <td align="left">Integer</td>
            </tr>
            <tr>
              <td align="left">Max-Age</td>
              <td align="left">Integer</td>
            </tr>
            <tr>
              <td align="left">Secure</td>
              <td align="left">Boolean</td>
            </tr>
            <tr>
              <td align="left">SameSite</td>
              <td align="left">Token</td>
            </tr>
          </tbody>
        </table>
        <t>Expires is mapped to an Integer representation of parsed-cookie-date (see <xref section="x.x" sectionFormat="of" target="COOKIES"/>) expressed as a number of seconds delta from the Unix Epoch (00:00:00 UTC on 1 January 1970, minus leap seconds).</t>
        <t>Note that although this mapping is very similar to the syntax of Cookie and Set-Cookie headers, cookies in both fields are separated by commas, not semicolons, and multiple cookies can appear in each field.</t>
        <t>For example:</t>
        <sourcecode type="http-message"><![CDATA[
SF-Set-Cookie: lang="en-US"; expires="Wed, 09 Jun 2021 10:18:14 GMT";
               samesite=Strict; secure=?1
SF-Cookie: SID="31d4d96e407aad42", lang="en-US"
]]></sourcecode>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Please add the following note to the "Hypertext Transfer Protocol (HTTP) Field Name Registry":</t>
      <ul empty="true">
        <li>
          <t>The "Structured Type" column indicates the type of the field (per RFC8941), if any, and may be
"Dictionary", "List" or "Item". A prefix of "*" indicates that it is a retrofit type (i.e., not
natively Structured); see [this specification].</t>
          <t>Note that field names beginning with characters other than ALPHA or "*" will not be able to be
represented as a Structured Fields Token, and therefore may be incompatible with being mapped into
fields that refer to it; see [this specification].</t>
        </li>
      </ul>
      <t>Then, add a new column, "Structured Type", with the values from <xref target="compatible"/> assigned to the nominated registrations, prefixing each with "*" to indicate that it is a retrofit type.</t>
      <t>Then, add the field names in <xref target="new-fields"/>, with the corresponding Structured Type as indicated, a status of "permanent" and referring to this document.</t>
      <table anchor="new-fields">
        <name>New Fields</name>
        <thead>
          <tr>
            <th align="left">Field Name</th>
            <th align="left">Structured Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">SF-Content-Location</td>
            <td align="left">String</td>
          </tr>
          <tr>
            <td align="left">SF-Cookie</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">SF-Date</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-ETag</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-Expires</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-IMS</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-INM</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">SF-IUS</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-Link</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">SF-LM</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">SF-Location</td>
            <td align="left">String</td>
          </tr>
          <tr>
            <td align="left">SF-Referer</td>
            <td align="left">String</td>
          </tr>
          <tr>
            <td align="left">SF-Set-Cookie</td>
            <td align="left">Dictionary</td>
          </tr>
        </tbody>
      </table>
      <t>Finally, add the indicated Structured Type for each existing registry entry listed in <xref target="existing-fields"/>.</t>
      <table anchor="existing-fields">
        <name>Existing Fields</name>
        <thead>
          <tr>
            <th align="left">Field Name</th>
            <th align="left">Structured Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Accept-CH</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">Cache-Status</td>
            <td align="left">List</td>
          </tr>
          <tr>
            <td align="left">CDN-Cache-Control</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Cross-Origin-Embedder-Policy</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Cross-Origin-Embedder-Policy-Report-Only</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Cross-Origin-Opener-Policy</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Cross-Origin-Opener-Policy-Report-Only</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Origin-Agent-Cluster</td>
            <td align="left">Item</td>
          </tr>
          <tr>
            <td align="left">Priority</td>
            <td align="left">Dictionary</td>
          </tr>
          <tr>
            <td align="left">Proxy-Status</td>
            <td align="left">List</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t><xref target="compatible"/> identifies existing HTTP fields that can be parsed and serialised with the algorithms defined in <xref target="STRUCTURED-FIELDS"/>. Variances from existing parser behavior might be exploitable, particularly if they allow an attacker to target one implementation in a chain (e.g., an intermediary). However, given the considerable variance in parsers already deployed, convergence towards a single parsing algorithm is likely to have a net security benefit in the longer term.</t>
      <t><xref target="mapped"/> defines alternative representations of existing fields. Because downstream consumers might interpret the message differently based upon whether they recognise the alternative representation, implementations are prohibited from generating such fields unless they have negotiated support for them with their peer. This specification does not define such a mechanism, but any such definition needs to consider the implications of doing so carefully.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <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="HTTP">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="Roy T. Fielding">
            <organization>Adobe</organization>
          </author>
          <author fullname="Mark Nottingham">
            <organization>Fastly</organization>
          </author>
          <author fullname="Julian Reschke">
            <organization>greenbytes GmbH</organization>
          </author>
          <date day="12" month="September" year="2021"/>
          <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.

   This document updates RFC 3864 and obsoletes RFC 2818, RFC 7231, RFC
   7232, RFC 7233, RFC 7235, RFC 7538, RFC 7615, RFC 7694, and portions
   of RFC 7230.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-semantics-19"/>
      </reference>
      <reference anchor="STRUCTURED-FIELDS">
        <front>
          <title>Structured Field Values for HTTP</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham">
            <organization/>
          </author>
          <author fullname="P-H. Kamp" initials="P-H." surname="Kamp">
            <organization/>
          </author>
          <date month="February" year="2021"/>
          <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 that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8941"/>
        <seriesInfo name="DOI" value="10.17487/RFC8941"/>
      </reference>
      <reference anchor="COOKIES">
        <front>
          <title>Cookies: HTTP State Management Mechanism</title>
          <author fullname="Lily Chen">
            <organization>Google LLC</organization>
          </author>
          <author fullname="Steven Englehardt">
            <organization>Mozilla</organization>
          </author>
          <author fullname="Mike West">
            <organization>Google LLC</organization>
          </author>
          <author fullname="John Wilander">
            <organization>Apple, Inc</organization>
          </author>
          <date day="24" month="April" year="2022"/>
          <abstract>
            <t>   This document defines the HTTP Cookie and Set-Cookie header fields.
   These header fields can be used by HTTP servers to store state
   (called cookies) at HTTP user agents, letting the servers maintain a
   stateful session over the mostly stateless HTTP protocol.  Although
   cookies have many historical infelicities that degrade their security
   and privacy, the Cookie and Set-Cookie header fields are widely used
   on the Internet.  This document obsoletes RFC 6265.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-rfc6265bis-10"/>
      </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">
            <organization/>
          </author>
          <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="RFC8288">
        <front>
          <title>Web Linking</title>
          <author fullname="M. Nottingham" initials="M." surname="Nottingham">
            <organization/>
          </author>
          <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>
    </references>
  </back>
  <!-- ##markdown-source:
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
WXF3QfnzK9Q5SNda/x9qHxhCg0oAAA==

-->

</rfc>
