<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pardue-httpbis-patched-digest-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>HTTP Patched Digest</title>
    <seriesInfo name="Internet-Draft" value="draft-pardue-httpbis-patched-digest-00"/>
    <author fullname="Lucas Pardue">
      <organization/>
      <address>
        <email>lucas@lucaspardue.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="20"/>
    <area>Web and Internet Transport</area>
    <workgroup>HTTP</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>AI-native</keyword>
    <abstract>
      <?line 37?>

<t>The PATCH method can be used to apply partial modifications to a resource. This
document defines the Patched-Digest request field, which allows a client to
indicate the integrity digest of the modified resource once a PATCH operation is
applied. A server can use the integrity digest to detect an operation failure
and return an error. The Want-Patched-Digest response field is also defined to
signal server integrity preferences.</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/patched-digest/draft-pardue-httpbis-patched-digest.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-pardue-httpbis-patched-digest/"/>.
      </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/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/LPardue/patched-digest"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The PATCH method <xref target="PATCH"/> can be used to apply partial modifications
to a resource. A client can indicate the desired precondition of the resource
prior to a PATCH operation being applied (<xref section="2" sectionFormat="of" target="PATCH"/>). For example,
sending a PATCH request containing an If-Match (<xref section="13.1.1" sectionFormat="of" target="HTTP"/>) with a strong ETag (<xref section="8.8.3" sectionFormat="of" target="HTTP"/>).</t>
      <t>The following example illustrates a hypothetical PATCH request to apply a patch
document to an existing resource with the ETag "e0023aa4e":</t>
      <sourcecode type="http-message"><![CDATA[
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100

[description of changes]
]]></sourcecode>
      <t>The PATCH operation results in a successful response that indicates the resource
has been modified and the new ETag is "e0023aa4f.</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 204 No Content
Content-Location: /file.txt
Content-Type: text/plain
ETag: "e0023aa4f"
]]></sourcecode>
      <t>To date there have been no means to communicate the client's expectation of the
result of a PATCH operation, delaying the ability for both client and server to
detect an error.</t>
      <t>While the integrity fields defined in <xref target="DIGEST-FIELDS"/> and
<xref target="UNENC-DIGEST"/> can be used by a client to obtain information related to the
resource before and/or after a PATCH operation, that cannot be used to
communicate an a priori expectation for the result. For instance, the example
request could be augmented to include integrity fields but all of them refer to
the patch document itself, not any state of the resource:</t>
      <sourcecode type="http-message"><![CDATA[
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100
Content-Digest: [something]
Repr-Digest: [something]
Unencoded-Digest: [something]

[description of changes]
]]></sourcecode>
      <t>The earlier example response can be similarly augmented with integrity fields
that indicate the state of the resource after modification:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 204 No Content
Content-Location: /file.txt
Content-Type: text/plain
ETag: "e0023aa4f"
Repr-Digest: [something]
Unencoded-Digest: [something]
]]></sourcecode>
      <t>The client might be able to use either <tt>Repr-Digest</tt> or <tt>Unencoded-Digest</tt> to
detect a problem that occurred during the PATCH operation. However, the server
would remain oblivious unless further action were taken by the client to
communicate a failure.</t>
      <t>This document defines the <tt>Patched-Digest</tt> request field, which allows
a client to indicate the integrity digest (<xref target="DIGEST-FIELDS"/>) of the
modified resource once a PATCH operation is applied. A server can use the
integrity digest to detect an operation failure and return an error response.
<tt>Patched-Digest</tt> complements other integrity fields but has a much narrower
usage scope.</t>
      <t>As is common for integrity fields, the <tt>Want-Patched-Digest</tt> response field is
also defined to signal server integrity preferences.</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?>

<t>This document uses the following terminology from <xref section="3" sectionFormat="of" target="STRUCTURED-FIELDS"/> to specify syntax and parsing: Byte Sequence,
Dictionary, and Integer.</t>
      <t>The definitions "representation", "selected representation", "representation
data", "representation metadata", and "content" in this document are to be
interpreted as described in <xref target="HTTP"/>.</t>
      <t>This document uses the line folding strategies described in <xref target="FOLDING"/>.</t>
      <t>The term "digest" is to be interpreted as described in <xref target="DIGEST-FIELDS"/>.</t>
    </section>
    <section anchor="patched-digest">
      <name>The Patched-Digest Field</name>
      <t>The <tt>Patched-Digest</tt> HTTP field can be used in requests to communicate an
expected digest for the result of applying a PATCH document to a resource. The
digest is calculated using a hashing algorithm applied to the resource's entire
selected representation data with no content codings applied (<xref section="8.4.1" sectionFormat="of" target="HTTP"/>).</t>
      <t>In the following examples of <tt>Patched-Digest</tt> fields, the representation data
with no content codings applied is: "An unexceptional string" followed by a
line feed character (0xA).</t>
      <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

Patched-Digest: \
  sha-512=:WjyMuMD9EI/v0RoJchcevbo6lF498VyE9564OgXf+98iJptoSvb1Czo9\
  uVJu2bVU/tOv90huiMG3+YaMX1kipw==:
]]></sourcecode>
      <t>The <tt>Dictionary</tt> type can be used, for example, to attach multiple digests
calculated using different hashing algorithms in order to support a population
of endpoints with different or evolving capabilities. Such an approach could
support transitions away from weaker algorithms (see
<xref section="6.6" sectionFormat="of" target="DIGEST-FIELDS"/>).</t>
      <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

Patched-Digest: \
  sha-256=:5Bv3NIx05BPnh0jMph6v1RJ5Q7kl9LKMtQxmvc9+Z7Y=:,\
  sha-512=:WjyMuMD9EI/v0RoJchcevbo6lF498VyE9564OgXf+98iJptoSvb1Czo9\
  uVJu2bVU/tOv90huiMG3+YaMX1kipw==:
]]></sourcecode>
      <t>A server <bcp14>MAY</bcp14> ignore any or all digests. Application-specific behavior or
local policy <bcp14>MAY</bcp14> set additional constraints on the processing and validation
practices of the conveyed digests. Security considerations related to ignoring
digests or validating multiple digests are presented in Sections <xref target="DIGEST-FIELDS" section="6.6" sectionFormat="bare"/> and <xref target="DIGEST-FIELDS" section="6.7" sectionFormat="bare"/> of <xref target="DIGEST-FIELDS"/> respectively. TODO: should we be more strict and
recommend returning an error (and maybe point to RFC 5789 Section 2.2)?</t>
      <t>A client <bcp14>MAY</bcp14> send a digest without knowing whether the server supports a
given hashing algorithm. A sender <bcp14>MAY</bcp14> send a digest if it knows the recipient
will ignore it. An example is depicted in <xref section="C.2" sectionFormat="of" target="DIGEST-FIELDS"/>.</t>
      <t><tt>Patched-Digest</tt> can be sent in a trailer section. In this case,
<tt>Patched-Digest</tt> <bcp14>MAY</bcp14> be merged into the header section; see <xref section="6.5.1" sectionFormat="of" target="HTTP"/>.</t>
    </section>
    <section anchor="want-patched-digest">
      <name>The Want-Patched-Digest Field</name>
      <t><tt>Want-Patched-Digest</tt> is an integrity preference field; see <xref section="4" sectionFormat="of" target="DIGEST-FIELDS"/>. It indicates that the server would like to receive a
<tt>Patched-Digest</tt> with PATCH requests.</t>
      <t><tt>Want-Patched-Digest</tt> is only a hint. Clients can ignore it and send an
<tt>Patched-Digest</tt> field using any algorithm or omit the field entirely. It is not
a protocol error if preferences are ignored. Applications that use
<tt>Patched-Digest</tt> and <tt>Want-Patched-Digest</tt> can define expectations or
constraints that operate in addition to this specification.  Ignored preferences
are an application-specific concern.</t>
      <t><tt>Want-Patched-Digest</tt> is of type <tt>Dictionary</tt> where each:</t>
      <ul spacing="normal">
        <li>
          <t>key conveys the hashing algorithm;</t>
        </li>
        <li>
          <t>value is an <tt>Integer</tt> (<xref section="3.3.1" sectionFormat="of" target="STRUCTURED-FIELDS"/>) that conveys an
ascending, relative, weighted preference. It must be in the range 0 to 10
inclusive. 1 is the least preferred, 10 is the most preferred, and a value of
0 means "not acceptable".  </t>
          <t>
Each Dictionary value can have zero or more Parameters (<xref section="3.1.2" sectionFormat="of" target="STRUCTURED-FIELDS"/>). This specification does not define any Parameters;
future extensions may do so. Unknown Parameters <bcp14>MUST</bcp14> be ignored.</t>
        </li>
      </ul>
      <t>Examples:</t>
      <sourcecode type="http-message"><![CDATA[
Want-Patched-Digest: sha-256=1
Want-Patched-Digest: sha-512=3, sha-256=10, unixsum=0
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All the same considerations documented in <xref target="DIGEST-FIELDS"/> apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to update the "Hypertext Transfer Protocol (HTTP) Field Name
Registry" <xref target="HTTP"/> as shown in the table below:</t>
      <table anchor="iana-field-name-table">
        <name>Hypertext Transfer Protocol (HTTP) Field Name Registry Update</name>
        <thead>
          <tr>
            <th align="left">Field Name</th>
            <th align="left">Status</th>
            <th align="left">Structured Type</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Patched-Digest</td>
            <td align="left">permanent</td>
            <td align="left">Dictionary</td>
            <td align="left">
              <xref target="patched-digest"/> of this document</td>
          </tr>
          <tr>
            <td align="left">Want-Patched-Digest</td>
            <td align="left">permanent</td>
            <td align="left">Dictionary</td>
            <td align="left">
              <xref target="want-patched-digest"/> of this document</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="UNENC-DIGEST">
          <front>
            <title>HTTP Unencoded Digest</title>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Mike West" initials="M." surname="West">
              <organization>Google</organization>
            </author>
            <date day="17" month="June" year="2026"/>
            <abstract>
              <t>   The Repr-Digest and Content-Digest integrity fields are subject to
   HTTP content coding considerations.  There are some use cases that
   benefit from the unambiguous exchange of integrity digests of
   unencoded representation.  The Unencoded-Digest and Want-Unencoded-
   Digest fields complement existing integrity fields for this purpose.

   This document updates the definitions of the terms "Integrity fields"
   and "Integrity preference fields" originally defined in RFC 9530.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-unencoded-digest-05"/>
        </reference>
        <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="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="DIGEST-FIELDS">
          <front>
            <title>Digest Fields</title>
            <author fullname="R. Polli" initials="R." surname="Polli"/>
            <author fullname="L. Pardue" initials="L." surname="Pardue"/>
            <date month="February" year="2024"/>
            <abstract>
              <t>This document defines HTTP fields that support integrity digests. The Content-Digest field can be used for the integrity of HTTP message content. The Repr-Digest field can be used for the integrity of HTTP representations. Want-Content-Digest and Want-Repr-Digest can be used to indicate a sender's interest and preferences for receiving the respective Integrity fields.</t>
              <t>This document obsoletes RFC 3230 and the Digest and Want-Digest HTTP fields.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9530"/>
          <seriesInfo name="DOI" value="10.17487/RFC9530"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="FOLDING">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
      </references>
    </references>
    <?line 266?>

<section numbered="false" anchor="example-of-patched-digest-usage">
      <name>Example of Patched-Digest Usage</name>
      <t>This section contains a non-normative example of <tt>Patched-Digest</tt> usage for a
hypothetical PATCH request. A resource located at
https://www.example.com/file.txt is a plaintext file containing the string: "An
unexceptional string" followed by a line feed character (0xA).</t>
      <t>A client could send a HEAD request to gather information about the status of
the resource, including its integrity preference for the response:</t>
      <sourcecode type="http-message"><![CDATA[
HEAD /file.txt HTTP/1.1
Host: www.example.com
Want-Unencoded-Digest: sha-256=1
]]></sourcecode>
      <t>The server could provide a response the contains both an <tt>ETag</tt> and an
<tt>Unencoded-Digest</tt>. It is also assumed that the client and server understand
this resource can be patched (via an out-of-band signal) and so the server
returns a <tt>Want-Patched-Digest</tt>:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: text/plain
ETag: "123-a"
Unencoded-Digest: sha-256=:5Bv3NIx05BPnh0jMph6v1RJ5Q7kl9LKMtQxmvc9+Z7Y=:
Want-Patched-Digest: sha-256=1
]]></sourcecode>
      <t>The client could make a conditional request to patch the resource and provide a
<tt>Patched-Digest</tt>. In this hypothetical example, the patch document is applied by
appending it to the resource, the document value is the string: "can
become magic" followed by a line feed character (0xA).</t>
      <sourcecode type="http-message"><![CDATA[
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "123-a"
Content-Length: 17
Patched-Digest: sha-256=:aeO2Iouoh/si+rSbwS7Xvivy00Qkkh4L6Jix3BEZ5ic=:

can become magic

]]></sourcecode>
      <t>The server applies the patch document and confirms the result matches the
<tt>Patched-Digest</tt> value, then returns a success message with a new ETag.</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 204 No Content
Content-Location: /file.txt
Content-Type: text/plain
ETag: "123-b"
]]></sourcecode>
      <t>If the client attempts to patch again with a mismatching <tt>Patched-Digest</tt>:</t>
      <sourcecode type="http-message"><![CDATA[
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "123-b"
Content-Length: 17
Patched-Digest: sha-256=:aeO2Iouoh/si+rSbwS7Xvivy00Qkkh4L6Jix3BEZ5ic=:

can become magic

]]></sourcecode>
      <t>even though the ETag precondition passes, the server is able to detect a problem
with the patch operation and return an error response:</t>
      <sourcecode type="http-message"><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: text/plain

[description of error]
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The PATCH integrity capability gap was identified by a discussion with Grant
Gryczan. Roberto Polli provided a reminder that the topic was touched on during
RFC 9530 development, and provided some early technical input related to the
design in this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
pauHxfB06jRq7Db22H8AdeXZafAvAAA=

-->

</rfc>
