Received: by ietfa.amsl.com (Postfix)
	id B0D03C18DBBB; Thu, 25 Jul 2024 04:15:58 -0700 (PDT)
Delivered-To: ietfarch-httpbisa-archive-bis2juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
	by ietfa.amsl.com (Postfix) with ESMTP id B016BC18DBB8
	for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 25 Jul 2024 04:15:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.859
X-Spam-Level:
X-Spam-Status: No, score=-2.859 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.25, HTML_MESSAGE=0.001,
	MAILING_LIST_MULTI=-1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001,
	SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01]
	autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
	header.d=w3.org header.b="fnq8wgR8"; dkim=pass (2048-bit key)
	header.d=w3.org header.b="AEnY5QhK"; dkim=pass (2048-bit key)
	header.d=gmail.com header.b="fZPetdth"
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 oT-Zf3h2E6oH
	for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>;
	Thu, 25 Jul 2024 04:15:58 -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 RSA-PSS (2048 bits) server-digest SHA256)
	(No client certificate requested)
	by ietfa.amsl.com (Postfix) with ESMTPS id DC16CC18DB8E
	for <httpbisa-archive-bis2Juki@ietf.org>; Thu, 25 Jul 2024 04:15:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org;
	s=s1; h=Subject:In-Reply-To:From:References:Cc:To:MIME-Version:Date:
	Message-ID:Content-Type:Reply-To;
	bh=ZBxpMUJrpfrBVFPwh3n1D6vjvUOVhOWiZ/nP9ojXrd8=; b=fnq8wgR8rKcygT0u28GYdajAwQ
	ImZ5/n4EtFlKlTU1ggrDwt7nRj+qWurDr0z7yw6qgzXAurmKUIrImiSsEq3Buhs0h+0CA0dCfPY+u
	DDAqfvxbDvUbHaYPJoeZxdiYtyikfPyCvBDFIE+VY7FUxatAQMZrUIMTCbbtwbRBxTV6FE5J5Dwyv
	GSW3fLrdQYVpxYoKg/il2SVH1YKWeNf+zUyNKEQRwDHxtC/HBA+fr5qpmFvFkhsmWawYqs7ftbTqa
	Wd2hYqWAJYY+26AUv4aSZdbrFlr1a130I57Cr3yZpUIrBfDljDP65jxhU0CuoYbXjpcnfzmviAc1y
	TYY5qFGg==;
Received: from lists by mab.w3.org with local (Exim 4.96)
	(envelope-from <ietf-http-wg-request@listhub.w3.org>)
	id 1sWwRI-006otx-38
	for ietf-http-wg-dist@listhub.w3.org;
	Thu, 25 Jul 2024 11:15:16 +0000
Resent-Date: Thu, 25 Jul 2024 11:15:16 +0000
Resent-Message-Id: <E1sWwRI-006otx-38@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 <toomim@gmail.com>)
	id 1sWwRG-006osw-1y
	for ietf-http-wg@listhub.w3.internal;
	Thu, 25 Jul 2024 11:15:14 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org;
	s=s1; h=In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:
	Message-ID:Content-Type:Reply-To;
	bh=ZBxpMUJrpfrBVFPwh3n1D6vjvUOVhOWiZ/nP9ojXrd8=; t=1721906114; x=1722770114; 
	b=AEnY5QhKuCZXtIdwLGD8tlo9jaN7lqBqQ7pnmHGmVQV5oVB0P8J7e9lToithohUDbK6tdeHPvma
	Qtunip05mql+8PUtXF64mav5yWugk+OjtODQ228AY+5qas3hBI4x3fYnbjwwUKajr8T3cv4Dks4Py
	dXdnG2Pi3KNT/qRtFJopOoW8M8BAM8mrIdn2SHPy9NVJZ31oiDou3jXmKzyfPXQDZLiLaCoWwMJCp
	TUriiq84yK8ioobFVI/rTducZoGNy6IYa0yv842/L4+lvV/QYChv1kH2AMfXZpuRKZCZcdHe+Nfaj
	iAlRAnrlIQ7+qmvAOe7qia8VUZUjujgrZksQ==;
Received-SPF: pass (pan.w3.org: domain of gmail.com designates 2607:f8b0:4864:20::1029 as permitted sender) client-ip=2607:f8b0:4864:20::1029; envelope-from=toomim@gmail.com; helo=mail-pj1-x1029.google.com;
Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029])
	by pan.w3.org with esmtps  (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
	(Exim 4.96)
	(envelope-from <toomim@gmail.com>)
	id 1sWwRF-00CmG4-39
	for ietf-http-wg@w3.org;
	Thu, 25 Jul 2024 11:15:14 +0000
Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-2cd48ad7f0dso684170a91.0
        for <ietf-http-wg@w3.org>; Thu, 25 Jul 2024 04:15:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1721906110; x=1722510910; darn=w3.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZBxpMUJrpfrBVFPwh3n1D6vjvUOVhOWiZ/nP9ojXrd8=;
        b=fZPetdthRpHsLQ39otBt5J5WuSWHB+PirlzsqmKDfM4kLN+JkRj/wyxfcmBWVZ4xdz
         ysLMQPLr2234qyLOLP7DvLuRI10iFxB89RYrzL1KBo3yPqIsKVThi02oJPA7z03Km5iX
         qmctiZAmJDbeMI8m5W37ipTPRn37EUKnHooLaSc8CgH/GNkV7Gg86cswjOq69hsDbVpm
         QWGh7qr5q5ddB6ZaDpn7BX0eMmnWyYa8N9YorSKJornZRwal9pO4oCCRqengOra8BaS/
         7fw+Klr4O1AralLQef4/w67dr3RTTcmlbttfStEmiIza2/wf0Z8Sni9um1zadPSJ6NpX
         p7BQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1721906110; x=1722510910;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ZBxpMUJrpfrBVFPwh3n1D6vjvUOVhOWiZ/nP9ojXrd8=;
        b=tuoCPjGvoAY3E48yZByhkhVSoyfqYy4xD5QTyGyneSSHV/veharNIo4+RaKwXoVZHJ
         v765xvy50jbZFHnSI+x5yDYytex3aDKSo3HalXqyX+1c2rsa8THTZ30LszkwXNpB6PsB
         dlZ3lOpOcG4D4RosyLp2I3YAAOd0q+0JkyFADZ/eDWv8paLirfXIQx2n7HjRkMKqfaPH
         /WiPqc3C23doqUJ4yeKyWwebPRhW9VXwamWJmw9DDOS7cl/FKppSLSdFj/7bIPBJo9k6
         +O77+1VSG5gGkUOUDwUaTinVhwq6xCbYuSptSF42/LD/RXcKA922b2fDdRfVdTl8lVhC
         PY0A==
X-Gm-Message-State: AOJu0Yz37ZDMjTsMFG2MaRge7JwgABJHXR2WPSneQM10AIVyeOmbLRi8
	JeShOG4gYnajYS2+a2Rh9MtQr8H75Nh7rQ4P8mNzrcyFlobAgB2lEdb3ch5QNSs=
X-Google-Smtp-Source: AGHT+IFvRGcjC13FqYPepX3n96dMxjBM2quMJpNqRVCV00B/XFhPQ35TvSvBJq5khzEEvif8gs9fLQ==
X-Received: by 2002:a17:90b:128a:b0:2c9:8891:e12a with SMTP id 98e67ed59e1d1-2cf2ea29bc9mr1629437a91.23.1721906109761;
        Thu, 25 Jul 2024 04:15:09 -0700 (PDT)
Received: from [172.31.7.130] ([207.194.231.35])
        by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2cdb73afe30sm3321198a91.13.2024.07.25.04.15.08
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Thu, 25 Jul 2024 04:15:09 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------mLXPeq8Bku0ZeU4BXZOvcPpv"
Message-ID: <efb367a4-2abe-4daa-b94c-f0a62a3415ae@gmail.com>
Date: Thu, 25 Jul 2024 04:15:08 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Marius Kleidl <marius@transloadit.com>
Cc: ietf-http-wg@w3.org
References: <CANY19Ns76du=x04xtejdRrdNT2Lq_=5Huo5oH_KQ9qg5bAO89A@mail.gmail.com>
 <29911fc7-cfa3-4ea4-8ee0-822781060fa5@gmail.com>
 <CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com>
Content-Language: en-US
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com>
X-W3C-Hub-DKIM-Status: validation passed: (address=toomim@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_ZEN_BLOCKED_OPENDNS=0.001, 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 1sWwRF-00CmG4-39 20ab2757d3710ec8f49a40999c2f9562
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Resumable Upload draft updates
Archived-At: <https://www.w3.org/mid/efb367a4-2abe-4daa-b94c-f0a62a3415ae@gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52134
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>

This is a multi-part message in MIME format.
--------------mLXPeq8Bku0ZeU4BXZOvcPpv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Marius, these are excellent questions! I am answering them inline below:

> 1. What is the parent version of a resource that a client is uploading 
> to? Requests have to set this header to ensure they are appending at 
> the correct offset, but I am wondering what parent version would be 
> included in responses to HEAD requests. The example responses in 
> section 3.3 always use the 0 byte count.

Ah, yes... Well, the parent header is actually redundant in that case— 
so I'm removing it from the example.

There, I think this 
<https://github.com/braid-org/braid-spec/commit/9e9485cdd4d2adcb0e7898b13919b06dc12ec496> 
is clearer now. How about you?

> 2. Can a client upload from a streaming data source without knowing 
> the entire file size upfront? Is the including of the Current-Version 
> header mandatory when starting an upload?

To best-support streaming resources of unknown length, we could 
articulate more into the Version-Type. For instance, we could define a 
special version ID called "end" that signals the end of a bytestream.

Then the initial request might look like this:

    PUT /something
    Current-Version: "end"
    Version-Type: bytestream
    Content-Length: 900

    <binary data of length 900>

Then the client could break up the file into multiple requests, e.g. by 
choosing a smaller number than 900 above, like you ask here:

> 4. Does the method allow the client to split an upload across multiple 
> requests? In our experience, servers can have an upper limit on the 
> size of a single request, which requires a client to split an upload 
> and send multiple consecutive requests to transfer the entire file.

Good question! I had to think on my feet to answer this one. :)

Finally, as for Content-Range:

> 3. The example request for case B in section 3.3.2 includes the 
> Content-Range header, which appears redundant. Does its value carry 
> additional information that is not covered by Parents, Current-Version 
> or Content-Length?
You're right that this is redundant information, but it might be useful 
for a Proxy that doesn't understand the bytestream version-type. It 
could still cache this range of the file! That's one of the cool things 
about re-using other headers and concepts. :)

These are such illustrative questions! It's really nice talking to other 
people who think about these things. :) Thanks for doing so!

Michael

--------------mLXPeq8Bku0ZeU4BXZOvcPpv
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Marius, these are excellent questions! I am answering them inline
      below:<br>
    </p>
    <blockquote type="cite"
cite="mid:CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">1. What is the parent version of a resource that a
        client is uploading to? Requests have to set this header to
        ensure they are appending at the correct offset, but I am
        wondering what parent version would be included in responses to
        HEAD requests. The example responses in section 3.3 always use
        the 0 byte count.</div>
    </blockquote>
    <p>Ah, yes... Well, the parent header is actually redundant in that
      case— so I'm removing it from the example.</p>
    <p>There, I think <a
href="https://github.com/braid-org/braid-spec/commit/9e9485cdd4d2adcb0e7898b13919b06dc12ec496">this</a>
      is clearer now. How about you?<br>
    </p>
    <blockquote type="cite"
cite="mid:CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com">
      <div dir="ltr">
        <div>2. Can a client upload from a streaming data source without
          knowing the entire file size upfront? Is the including of the
          Current-Version header mandatory when starting an upload?</div>
      </div>
    </blockquote>
    <p>To best-support streaming resources of unknown length, we could
      articulate more into the Version-Type. For instance, we could
      define a special version ID called "end" that signals the end of a
      bytestream.</p>
    <p>Then the initial request might look like this:<br>
    </p>
    <blockquote>
      <pre>PUT /something
Current-Version: "end"
Version-Type: bytestream
Content-Length: 900

&lt;binary data of length 900&gt;
</pre>
    </blockquote>
    <p>Then the client could break up the file into multiple requests,
      e.g. by choosing a smaller number than 900 above, like you ask
      here:<br>
    </p>
    <blockquote type="cite"
cite="mid:CANY19Nt5XSjNguTY2poHvdLQF7p=TAEb1hX1p=ZS2siMCf-U0Q@mail.gmail.com">
      <div dir="ltr">4. Does the method allow the client to split an
        upload across multiple requests? In our experience, servers can
        have an upper limit on the size of a single request, which
        requires a client to split an upload and send multiple
        consecutive requests to transfer the entire file.<br>
      </div>
    </blockquote>
    <p>Good question! I had to think on my feet to answer this one. :)</p>
    <p>Finally, as for Content-Range:</p>
    <p>
      <blockquote type="cite">
        <div>3. The example request for case B in section 3.3.2 includes
          the Content-Range header, which appears redundant. Does its
          value carry additional information that is not covered by
          Parents, Current-Version or Content-Length?</div>
      </blockquote>
      You're right that this is redundant information, but it might be
      useful for a Proxy that doesn't understand the bytestream
      version-type. It could still cache this range of the file! That's
      one of the cool things about re-using other headers and concepts.
      :)</p>
    <p>These are such illustrative questions! It's really nice talking
      to other people who think about these things. :) Thanks for doing
      so!</p>
    <p>Michael<br>
    </p>
  </body>
</html>

--------------mLXPeq8Bku0ZeU4BXZOvcPpv--

