Re: Draft v1 Update for Resumable Uploads

Guoye Zhang <> Sun, 19 June 2022 19:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 83BF0C14F744 for <>; Sun, 19 Jun 2022 12:33:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.506
X-Spam-Status: No, score=-3.506 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.745, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id J7iGUFkjb1f5 for <>; Sun, 19 Jun 2022 12:33:31 -0700 (PDT)
Received: from ( []) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by (Postfix) with ESMTPS id 65B6AC14F734 for <>; Sun, 19 Jun 2022 12:33:30 -0700 (PDT)
Received: from lists by with local (Exim 4.92) (envelope-from <>) id 1o30ca-0003Tv-UM for; Sun, 19 Jun 2022 19:30:08 +0000
Resent-Date: Sun, 19 Jun 2022 19:30:08 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1o30cY-0003Sa-U8 for; Sun, 19 Jun 2022 19:30:06 +0000
Received: from ([] by with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <>) id 1o30cX-000p3w-0b for; Sun, 19 Jun 2022 19:30:06 +0000
Received: from pps.filterd ( []) by ( with SMTP id 25JJKNTT009511; Sun, 19 Jun 2022 12:29:43 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=abcRc1iVtGqUszkDbYfngsIWfHqC2O3ot2cfmZzYEVQ=; b=hnLiUdOA68eiZWi6ov9tT14HC0u00YcgcDIawsaimRiZ/gHnsetv/d9sPFeKuzn2Nxyu A3/PwhSokaAxUAUS+YABVRIqH4JzUYm5K/+7r7t7neCycUqOC1bUDWresSlnRhB5/spL zBJCN5Il12JYVDOXbrGRQye5SKR8BfB3Lm5HTq/hWuo3MEyeEgIEKf0CZqDQYe43Y0jO IjxndxR2aqz2uaZqNX/Ai6S40GIeo5z4MiVXr1qbNNc6sJouTbclnn4flf4CVkp9K/AU 9bWoZ3IJrJEo1dbOkEAMziqb3Kwbhq87+Pj6qyJPcVSj4YYnn0bTPCyW3oHr+1V0KsKQ NQ==
Received: from ( []) by with ESMTP id 3gsca8u202-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Sun, 19 Jun 2022 12:29:43 -0700
Received: from ( []) by (Oracle Communications Messaging Server 64bit (built Apr 7 2022)) with ESMTPS id <>; Sun, 19 Jun 2022 12:29:43 -0700 (PDT)
Received: from by (Oracle Communications Messaging Server 64bit (built Apr 7 2022)) id <>; Sun, 19 Jun 2022 12:29:43 -0700 (PDT)
X-Va-T-CD: 6ce7dffd6ac8afd0af3f738963e57eda
X-Va-E-CD: 7fa589823f194c8498e6df6440bddbf3
X-Va-R-CD: 87a202228b76ae5a02807a21fbbc1b7c
X-Va-CD: 0
X-Va-ID: e7cc4a3b-c0e2-40cd-8355-e9b3dc99bb06
X-V-T-CD: 6ce7dffd6ac8afd0af3f738963e57eda
X-V-E-CD: 7fa589823f194c8498e6df6440bddbf3
X-V-R-CD: 87a202228b76ae5a02807a21fbbc1b7c
X-V-CD: 0
X-V-ID: e5fdaa49-fc38-4045-af03-0c5fb818de3e
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517,18.0.883 definitions=2022-06-19_09:2022-06-17,2022-06-19 signatures=0
Received: from (unknown []) by (Oracle Communications Messaging Server 64bit (built Apr 7 2022)) with ESMTPSA id <>; Sun, 19 Jun 2022 12:29:43 -0700 (PDT)
From: Guoye Zhang <>
Message-id: <>
Content-type: multipart/alternative; boundary="Apple-Mail=_9771ED6D-F0CC-4FB6-BB5E-A00D44BEBC2B"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3724.\))
Date: Sun, 19 Jun 2022 12:29:33 -0700
In-reply-to: <>
Cc: gs-lists-ietf-http-wg <>, ietf-http-wg <>
To: Eric J Bowman <>
References: <> <Yq67WGkb0LtJIAP9@xps13> <> <>
X-Mailer: Apple Mail (2.3724.
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517,18.0.883 definitions=2022-06-19_08:2022-06-17,2022-06-19 signatures=0
Received-SPF: pass client-ip=;;
X-W3C-Hub-DKIM-Status: validation passed: (, signature is good
X-W3C-Hub-Spam-Status: No, score=-7.0
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.571, 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_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: 1o30cX-000p3w-0b 7f2b42b0c9697ee3dda878dc6fd5b967
Subject: Re: Draft v1 Update for Resumable Uploads
Archived-At: <>
X-Mailing-List: <> archive/latest/40165
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

> On Jun 19, 2022, at 03:40, Eric J Bowman <> wrote:
> >
> > Apple has a Feedback Assistant app which allows customers to
> > file bug reports and upload device diagnostics. These diagnostics
> > are usually hundreds of megabytes in size, and if interrupted, we
> > have to upload them again from the beginning. This has been 
> > one of the most common complains we receive.
> >
> FTP is your friend. Well, SFTP/FTPS anyway. If you can't tighten the screw with a hammer, maybe try a screwdriver.

I don’t think “just use FTP” is a sentiment shared among the workgroup. Safari removed FTP support last year, and this year FTP support is deprecated on all Apple platforms.

FTP predates TCP/IP networks, and it does not utilize the bidirectional communication of TCP connections. It requires multiple connections to transfer a single resource and does not reuse connections. The inefficiency and the extra round-trips make the protocol unacceptable in modern standards.

There is no CDN support for FTP, and it didn’t receive the same security or performance optimizations from the decades of work that went into HTTP. It does not support modern transport protocol QUIC. The list can go on.

FTP belongs in a history museum. It’s not a protocol anybody should still be deploying in production.
> >
> > From my reading of the PATCH standard, media type should be the
> > type of the content that we are trying to modify.
> >
> RFC 5789 states:
> "The PATCH method requests that a set of changes described in the request entity be applied to the resource identified by the Request-URI. The set of changes is represented in a format called a 'patch document' identified by a media type."
> Suggest brushing up on "media type". You're modifying a resource, not a type of content. A text/html representation of a CSV diagnostic file may be generated for rendering in a browser. Probably best to patch the resource by sending a snippet of CSV, as patching the HTML *representation* may inadvertently break the CSS. Not to mention needs reverse-transformed before applying to the resource.
> You just need a "patch document" with a media type defining it as CSV, maybe even with line numbers.

In this case, the resource is an arbitrary binary blob. Maybe we should go with “application/octet-stream” which would be accurate, but we are hesitant to define a general way to PATCH octet-streams as the only capability we use is appending.

> -Eric