[httpapi] Byte range PATCH

Austin William Wright <aaa@bzfx.net> Mon, 23 January 2023 21:13 UTC

Return-Path: <aaa@bzfx.net>
X-Original-To: httpapi@ietfa.amsl.com
Delivered-To: httpapi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 053C0C1595FE for <httpapi@ietfa.amsl.com>; Mon, 23 Jan 2023 13:13:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=bzfx.net
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eMX07JrDfX7J for <httpapi@ietfa.amsl.com>; Mon, 23 Jan 2023 13:13:43 -0800 (PST)
Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A9BE8C15C530 for <httpapi@ietf.org>; Mon, 23 Jan 2023 13:05:49 -0800 (PST)
Received: by mail-pj1-x1030.google.com with SMTP id x2-20020a17090a46c200b002295ca9855aso16495735pjg.2 for <httpapi@ietf.org>; Mon, 23 Jan 2023 13:05:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bzfx.net; s=google; h=to:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=gyXtUQb70Ei7W/n8D0DuPDSZraFzHLTpEcHmgEwmgFU=; b=z0GD/DctWKWyQS4e/qhgirGGo4ZJHIMItT/kZn5Nuf35HF7+QViYVCsWZ8dEYPVDNq c9aqxjhOWYm+9CkdbHDTbpIfJ3yiR5pa0f3NGBgkZ6Ky0ZWO59XoxHUr4nvr/Er3j6ch 5BZOc5T2ZS1Aph5cqxbSaZM51cyT5rZyena1I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gyXtUQb70Ei7W/n8D0DuPDSZraFzHLTpEcHmgEwmgFU=; b=VlATNuVRit8WhyqxzIUk0riVPThKYoMf4tNmuhVheb96PwOmErN48fNSlJN1CcFR14 8PYIqj7l5TYOkufr2w5POZldVHKGGOFr2SuXfEZ4zhXfxLo4dLmHZYQw+JDSgJfmLkRL RZ5NA7sMg3SbmSb4iKojQWMKdylleyr5Uo8A4dqIa38CQlxtU+4hE/IHiF3/WbxoQxXt iONS+KMoby3F74TeQCCHBI33eLsKbmdQa4gezwE53IQ03eEX5sbvwxScxSZmsJCOWPZ6 rnCBKUPS7ZhN70mxkYdPbDEg6arPW0ud221A6kJHH7AvVCctziFwPXNvd3wGCdJZHSmu somQ==
X-Gm-Message-State: AFqh2krINdZ1ywMhhpgGwrvHFv6DYfjjVgeUxLn4UiJjLdmAI9hVbD+h R8q7yjWtT7W1cayLj0GD2BB95rYAn6dEegX4
X-Google-Smtp-Source: AMrXdXuUbclIheOlGV5newVocCM8IOOtQWQq4jxsCcWkp11S7Ld+8CqVbBJCNR5C4Z/e4EGo/THUSg==
X-Received: by 2002:a17:902:bd8d:b0:192:8cd1:5e79 with SMTP id q13-20020a170902bd8d00b001928cd15e79mr49283698pls.41.1674507948405; Mon, 23 Jan 2023 13:05:48 -0800 (PST)
Received: from smtpclient.apple (71-223-153-121.phnx.qwest.net. [71.223.153.121]) by smtp.gmail.com with ESMTPSA id jk14-20020a170903330e00b00192721d4f2dsm152958plb.82.2023.01.23.13.05.47 for <httpapi@ietf.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Jan 2023 13:05:48 -0800 (PST)
From: Austin William Wright <aaa@bzfx.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_AB8BDF83-9741-4F58-86E0-05850B43A9D3"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.300.101.1.3\))
Message-Id: <4589CE6D-6C89-4450-AF7A-BC7F5659F3FA@bzfx.net>
Date: Mon, 23 Jan 2023 14:05:36 -0700
To: HTTP APIs Working Group <httpapi@ietf.org>
X-Mailer: Apple Mail (2.3731.300.101.1.3)
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/OUCTBQwbQv3UJrTm9S06ToihgAY>
Subject: [httpapi] Byte range PATCH
X-BeenThere: httpapi@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/httpapi>, <mailto:httpapi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi/>
List-Post: <mailto:httpapi@ietf.org>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/httpapi>, <mailto:httpapi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Jan 2023 21:13:48 -0000

Hello HTTP APIs,

I’m seeking to standardize a media type for writing to particular byte offsets in a target document. This seems to be a common problem in HTTP applications, including in my own work with streaming parsers.

This sort of operation is common in filesystems. For example, you append audio data to a .wav file, and then you update the header at the start of the file. I don’t know of any way to do this operation over HTTP, except a PUT that replaces the entire resource.

This has been discussed in the HTTP WG list, as part of “resumable uploads” <https://httpwg.org/http-extensions/draft-ietf-httpbis-resumable-upload.html>, and I emailed there some months ago about this I-D. But aside from the resumable uploads being in HTTP WG, this seems more like an API-related feature.

Here’s the I-D I’ve written: draft-wright-http-patch-byterange-01 <https://www.ietf.org/archive/id/draft-wright-http-patch-byterange-01.html>

Editor’s copy: https://awwright.github.io/http-progress/draft-wright-http-patch-byterange.html

This is the successor to version 00; in response to some feedback, I added a binary format. And I discuss what is necessary to support “splicing” (an insertion that shifts other content around) and indeterminate-length uploads, which is a requested feature for the “resumable uploads” spec.

Is HTTP APIs the best place to pursue this? I’m hoping I can discuss this at IETF 116.

Thanks,

Austin Wright.