Re: An HTTP digest for PATCHing?
Rory Hewitt <rory.hewitt@gmail.com> Mon, 11 May 2026 20:12 UTC
Received: by mail2.ietf.org (Postfix) id AD90BECA14F2; Mon, 11 May 2026 13:12:37 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id AA4CDECA14F1 for <ietfarch-httpbisa-archive-bis2Juki@mail2.ietf.org>; Mon, 11 May 2026 13:12:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1778530357; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; h=Resent-Date:References:In-Reply-To:From:Date:To:Cc:Subject: Resent-From:Resent-Sender:List-Id:List-Help:List-Post: List-Unsubscribe; b=pxC+jwsJpia2hLZcnmDEULKzq5sI2PVtRJGAFEk5mxUG/sxbKmfaS6qrElP8GQd2h TMVln8jvBL/k2mfoU/Wgiz2qlwKCzJbd2anj9Xt9XiD/+f3l3dP6lSt6PrMeb4G/Oj X+AKsexJQBFtUoYDpWRMFjfdzIHD82G4oAjS75yY=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -5.399
X-Spam-Level:
X-Spam-Status: No, score=-5.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="mF77vXCP"; dkim=pass (2048-bit key) header.d=w3.org header.b="nlUZ2V53"; dkim=pass (2048-bit key) header.d=gmail.com header.b="j52K3wzE"
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8P2ZNOlBhOl4 for <ietfarch-httpbisa-archive-bis2Juki@mail2.ietf.org>; Mon, 11 May 2026 13:12:33 -0700 (PDT)
Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id C7667ECA14E8 for <httpbisa-archive-bis2Juki@ietf.org>; Mon, 11 May 2026 13:12:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:Cc:To:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; b=mF77vXCPkwu0/a7KzDDQwGliTt 4KR5nykblgDYaoJDNO/9lZcjWvUqhwBZtQKNZJjMxfw84BD3nJBjkUbFekXCclonS86ERg1WFnPl4 RicatGCvIHa4qeTPGK3n4CJaHVll8HNfRMahGyPhnmRpQeW3MZYP0C8N/YGrWU+R3+zJhvf1pzydS boZks0C3edNw8lKBRRQ6Ag/aBh8nmsInKfFyY1MzYBDQEYU7+VfsSgFGxKos+XjRM2v2HcuN7XSxa sJcC/Y9kif+ZuDNsJb+aU2sJ6yzBeFONBsJY62RDG5BX9RptqCBfvX8a5cgW586XHIkKnlZngFFio LMFdDIbA==;
Received: from lists by mab.w3.org with local (Exim 4.96) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1wMWyA-002T0e-1C for ietf-http-wg-dist@listhub.w3.org; Mon, 11 May 2026 20:11:14 +0000
Resent-Date: Mon, 11 May 2026 20:11:14 +0000
Resent-Message-Id: <E1wMWyA-002T0e-1C@mab.w3.org>
Received: from ip-10-0-0-144.ec2.internal ([10.0.0.144] helo=pan.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1wMWy8-002Szq-1Z for ietf-http-wg@listhub.w3.internal; Mon, 11 May 2026 20:11:12 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; t=1778530272; x=1779394272; b=nlUZ2V53RAtk5PrX1La/lx9QwiKuYI0iWOFxhN2meIlnbb1seleNHiY5OMmPAyzFow5inLxrrSL VABHi8ZfUrGPgX2j1jjvyVJTvaNWG37j4wvQ4Psnw/iuGBKhpUTGZr9ds+jzCcz3BQBdQEokox3Qk BB0T/IDJA8M07KeK9wZY+usQAeO48LxSF5+GdO5/PdMHXq/qEtuU6SgfghdGdBmyCihl/5aKM84k2 tmSnO40Ps8smvHUHL1cBWp5FU6hxzNp61Pfzro12crCF9XMwVjDaiaj6zrkU2y4SoinWHHZbs7B3r YIUX+HgCwkS+qAJDxhIys9IlUNPRo3bG9Efw==;
Received-SPF: pass (pan.w3.org: domain of gmail.com designates 2a00:1450:4864:20::636 as permitted sender) client-ip=2a00:1450:4864:20::636; envelope-from=roryhewitt@gmail.com; helo=mail-ej1-x636.google.com;
Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by pan.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <roryhewitt@gmail.com>) id 1wMWy4-000IZt-1U for ietf-http-wg@w3.org; Mon, 11 May 2026 20:11:12 +0000
Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-bcc9fdc959cso331600966b.2 for <ietf-http-wg@w3.org>; Mon, 11 May 2026 13:11:08 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1778530264; cv=none; d=google.com; s=arc-20240605; b=ADj6SekZ6/ts2VOKDV8oD4CresBE9tQleTpbVd6hxIB5B8co+Uhh3SsGvHqpXrQvdY Ibl5/npnc+06ZHQy67ab4eGIONcFshg0va6Pfrx+kLaYCvUCXsLxide3mqhKUw33FkNc cgWGIBi5U8NM0PCUSNIZGCB3FUpcAkonakhZheA8AgyGGku/AlDfuqACdkWkbF+klSBz mdO/x/ES48QjjP+XwCg2uCAoFrgqs3uX8giGi8nxjJBLOS90dVdiVLt4BdQJ8b+1y2u8 1BoV0Jg69+0A9xRf1Cb8QVc4LTnj+psxUBY31zeCfTda5I0GSG/o4qroEXoowCYQAf0R KVqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; fh=UZkbem6ceaAbhtzXQaYSI5+lpxf1HJuSss7pE1o1ZNk=; b=kzKzb3theBxllPSrYT37vXrKbf4B+yGD4Fx0U+C6ZrjTzbozBunMABJXFhZl1OJ+Dv 41g5T+fl2hngzcezdigVpabiOem5Rw1TccsCmFo7Jg6eyOMlrTW+46hdv1ZJ7jblK+NQ de42khBWLEGCQG1E57sWpWhYrM3QChTrCwGu5sj5mZypTYV7Jrz/ZbfKyqHGPv7lshab yu/vlLjsV0dMwVeng6leSlHiKa0KuC/NPMxZcd3LyrGOQikQusK/1bjGOewPT6MvniWZ VTMHqHzEi/s/elyREHCXELfV748axeHyooBZAIWU6FLt6B4/eMwWFWXBk89UPqtInNWD Ntyg==; darn=w3.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778530264; x=1779135064; darn=w3.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; b=j52K3wzE7fecs2YnM1oP9zG0M1imGYnBsDOrrBAFieAnfuZ+z8um7oAFlNipnknc4+ j7ijVnLmESuGF6d4Czqw7WGwhLhYrGBuGCEGxOUdywkaWuxhsf7gmUIP/gZ7xkpyweGF oA0A0BN2Vbf+jO20A2DBp+ATh1iO6jbq9DTfZRZ17SP1zRG3k5dhh6crPcMLqZwQUb0N TslsEyEDxkfG7F1DaMN3tsMyZ5WgF0haQ6F7KoF7RQTxF0xAQL1dKAZhQPr7wNWn0D4r 7HEktPbPPOh8PzXn5iC2Z3lAxlw7zR5bVcfYr7xjQTGO1GSCnVz8xI1fieu+4537bERu pPTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778530264; x=1779135064; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kG/TLCKHTECrkDDgIh52Rp02Vr92ws7Wt3B5vksLHMg=; b=aXxCkatz+DTir36A1hXVLko3oXAJGEgg73DTO1YJiU+ZXZZ0ySGMxoHOKyafrn0CS1 BoyJFCXcbjvr4+8Sz1r0aEkbapl+nlZGxI+jzYJPDYjU9p7c97prbEcv8AWYVtFcMQMV ukiLwb+dgoROqYYJhYgGEEsrMpNGh3x+c0f/QGWHsQcO9Hpw+j6iA84d4UBKpUNtV9GO PMYgczF9EsAAbA/JvFbxiFXO/OjTM3dnKtYORdn+XSWNx4iFWj7qrHkgTAEcRpRZEyeT QBX256QHkLKQqH85rhf2dCIbay4S7qIRtdOAstXCudYIq3NgFeVcbOlALCxC+QU4tPsn u0Ng==
X-Gm-Message-State: AOJu0YzN7jPPIVvmpPk5x1jl46Zb+WwiWRuoJORpmFVAEXpZqGcJzvML 0JoFTuUyd2FCPu2qNa6vIvd5kp6k3JozMcP46ickOzbk6vfW+D4xmgdD/bLTLQ7uMD2Zf376ey9 RrHvzwDuAmFpbn6V+NCicM9B8O97qqA0=
X-Gm-Gg: Acq92OFMZEJQ7tEt6etAgG8LA+PN/lPJH8zasJXrFQX9fl5vMjlmpesRFkKzGjtKzcf s6tDibyI5nl0cfTyQyArx64hS6f2/iAaHkOSWSXp/m38/8bxivlHPaSH0NP2eBtn4MXZXJiAIVp P+D+Ip+Q3Gcvuu6q3UA7GGkX3fOJocpInxoSxOTZHXCpg5ia9xZShgHEeQPcjgWaPyiuYLU024E SfNt/wn4g7TkAD2rRvWbERRwqJXp2lUEDM+evr3SmLfSrLtODbowGWe/SoqdfE7+3EH5Ngsqgxn 5FMhGwYVXYJlL8HUHgJb2/eVrsyh58Q7wIZo+Q53ZGKubQieooacwj8oZxxIRhUrdRutI8j+/0C Jx1gh2/4=
X-Received: by 2002:a17:907:7208:b0:bd0:fe53:ff1d with SMTP id a640c23a62f3a-bd0fe54047emr286447566b.29.1778530264046; Mon, 11 May 2026 13:11:04 -0700 (PDT)
MIME-Version: 1.0
References: <83736c89-5d58-4965-a16e-13d5c40a567b@app.fastmail.com>
In-Reply-To: <83736c89-5d58-4965-a16e-13d5c40a567b@app.fastmail.com>
From: Rory Hewitt <rory.hewitt@gmail.com>
Date: Mon, 11 May 2026 13:10:53 -0700
X-Gm-Features: AVHnY4LEeOAe-erUmRnEUvk3_dxdHIDhCi40f6Of4pt_cpFOUFW5ptAWDuEYKVM
Message-ID: <CAEmMwDxsxYnuVqQ_NZoW0kjBMLOp=uWyKcJu_Y_On1gL9Z7pKw@mail.gmail.com>
To: Lucas Pardue <lucas@lucaspardue.com>
Cc: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="0000000000009c5e8d065190582c"
X-W3C-Hub-DKIM-Status: validation passed: (address=roryhewitt@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: pan.w3.org 1wMWy4-000IZt-1U 4a5f38b39fee7c54a39821eed81b08f0
X-Original-To: ietf-http-wg@w3.org
Subject: Re: An HTTP digest for PATCHing?
Archived-At: <https://www.w3.org/mid/CAEmMwDxsxYnuVqQ_NZoW0kjBMLOp=uWyKcJu_Y_On1gL9Z7pKw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/53849
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
FWIW, this seems like it could/should be generalized to other
non-idempotent P-cases (PUT/POST/PATCH) - some standard request parameter
which either a client or server can pass to indicate to the receiving
server/client that, following processing, certain things must be true.
The primary use-case would be a hash of the result of the operation, but
could there be a situation - perhaps with a frequently/quickly-updated
object - where a client needs to indicate to a server that object O must be
updated, but only if the current hash is XXXX...XXXX *and* following the
processing, the hash must be YYYY...YYYY?
Perhaps two optional headers - simplistically something like:
*{hash-header}: "{algo};{hash}"*
For example:
Content-Pre-Hash: "sha256; xxxx...xxxx"
Content-Post-Hash: "md5; yyyy...yyyy"
Or maybe this all exists already, in some form or another?
Rory
On Sun, May 10, 2026 at 8:17 PM Lucas Pardue <lucas@lucaspardue.com> wrote:
> Hi digest enthusiasts!
>
> As part of some discussion in one of the resumable uploads issues, we
> stumbled upon a bit of and edge case that I forgot about since it was
> tangential to the primary issue. I'll attempt to summarise my understanding
> in an example scenario.
>
> Imagine there's an existing resource of X bytes, with a client wishing to
> use PATCH to append Y bytes to it. The server accepts the request, performs
> the patch, and the resource is now X+Y bytes.
>
> The client initiating the request can indicate the digest(s) of the patch
> document: content, repr, or identity. The server can indicate the
> digests(s) related to the resource and/or transfers related to it. This
> could be prior to or after patching. (ETags also play a role, if aspects of
> RFC 5789 are in play [1]).
>
> However, there's no digesty way for a client to articulate what it might
> expect the outcome of the patch to be. In other words, it can't say "If you
> apply patch document with bytes Y the hash of X+Y is foo. If it's not foo,
> the operation failed". This seems very niche and I don't have a personal
> use case. So throwing it out to the list in case there's other opinions.
>
> Cheers,
> Lucas
>
> [1] https://httpwg.org/specs/rfc5789.html#rfc.section.2
>
>
>
--
Rory Hewitt
https://www.linkedin.com/in/roryhewitt
- An HTTP digest for PATCHing? Lucas Pardue
- Re: An HTTP digest for PATCHing? Rory Hewitt
- Re: An HTTP digest for PATCHing? Lucas Pardue
- Re: An HTTP digest for PATCHing? Rory Hewitt
- Re: An HTTP digest for PATCHing? Lucas Pardue
- Re: An HTTP digest for PATCHing? Julian Reschke
- Re: An HTTP digest for PATCHing? Rory Hewitt