Received: by ietfa.amsl.com (Postfix)
	id 5BE13C1840D2; Tue,  9 Jul 2024 03:03:50 -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 5AF1FC180B7D
	for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue,  9 Jul 2024 03:03:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.855
X-Spam-Level:
X-Spam-Status: No, score=-2.855 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_FONT_LOW_CONTRAST=0.001,
	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, URIBL_BLOCKED=0.001,
	URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001]
	autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
	header.d=w3.org header.b="CYuhxlGN"; dkim=pass (2048-bit key)
	header.d=w3.org header.b="XPuXSmbZ"; dkim=pass (2048-bit key)
	header.d=gmail.com header.b="fuGg3bXc"
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 Gj9ktrjyF83W
	for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>;
	Tue,  9 Jul 2024 03:03:46 -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 A4113C151552
	for <httpbisa-archive-bis2Juki@ietf.org>; Tue,  9 Jul 2024 03:03:46 -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=Dfv7gGtl2BBhhXYfKoWXWjbUSvYRrKiCxUpqyL56bck=; b=CYuhxlGN9RI51sz6ukWkWXhIy1
	dMKhvDkzrh7TvGs4ovEjhADF5MoY/CEka1J5Qiolb5zwmcAHqzs29nlMrZVwE1PLniVCVedKVD7Q4
	pKOVPdvBMAfQ3ReTREqrk3Etsta2zpJZzWV6AcHIRFqolFqWSEbOXCPFMUoV5OaFhwwgXghX2PYCl
	eMW61ZtJ/Zd10NJtkGibwmiHduFiqSIKLiWMmmRx3GigCj2tDN7XExJzHOX1hCWrJo7N6NkjG0l30
	X2iDfUvJOVfNN8RZmMfm02v9vVPARNu5BjrngIH0QE41WxJ5Ih11reGUYOwDhuNEj/hg2eNOmo+hK
	m7c1GW5w==;
Received: from lists by mab.w3.org with local (Exim 4.96)
	(envelope-from <ietf-http-wg-request@listhub.w3.org>)
	id 1sR7gO-00CfeU-1w
	for ietf-http-wg-dist@listhub.w3.org;
	Tue, 09 Jul 2024 10:02:48 +0000
Resent-Date: Tue, 09 Jul 2024 10:02:48 +0000
Resent-Message-Id: <E1sR7gO-00CfeU-1w@mab.w3.org>
Received: from ip-10-0-0-224.ec2.internal ([10.0.0.224] helo=puck.w3.org)
	by mab.w3.org with esmtps  (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
	(Exim 4.96)
	(envelope-from <valentin.gosu@gmail.com>)
	id 1sR7gL-00CfdY-0t
	for ietf-http-wg@listhub.w3.internal;
	Tue, 09 Jul 2024 10:02:45 +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=Dfv7gGtl2BBhhXYfKoWXWjbUSvYRrKiCxUpqyL56bck=; t=1720519365; x=1721383365; 
	b=XPuXSmbZOCORoP8eGQcqHltEmgDR38UKRkjh7MaqcQT1Bhs6IFpMZTLLfKrvVAVVrG9AhgyBGNa
	OohcYfW8Sf7wtGgtQc19XIqpG9vgpE8NqbK8xsBiEc1MhwVaK2xvNZaCbeY957YYhl7ZxAqMYOmU/
	DMLWS4GjbUeQ4ClHC6Pi6QmptWzkh900VSdHqMyyoejjcx+xY2Y62YAa7gM8/ma8j7r3DStTUg9cz
	Po+kFq50/Tru/kCRzUBxWS28RF8iQcaxoiu+JmRvRM2G0ZhGJ2qH6MC6szMPLvahQBQYyPTssIGnJ
	sUu6NoP/Bz95J8GivgJw1JrSr816YEug1G3A==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2001:4860:4864:20::33 as permitted sender) client-ip=2001:4860:4864:20::33; envelope-from=valentin.gosu@gmail.com; helo=mail-oa1-x33.google.com;
Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33])
	by puck.w3.org with esmtps  (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
	(Exim 4.96)
	(envelope-from <valentin.gosu@gmail.com>)
	id 1sR7gK-00GJzv-1j
	for ietf-http-wg@w3.org;
	Tue, 09 Jul 2024 10:02:45 +0000
Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-25e3d8d9f70so2366126fac.2
        for <ietf-http-wg@w3.org>; Tue, 09 Jul 2024 03:02:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1720519361; x=1721124161; 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=Dfv7gGtl2BBhhXYfKoWXWjbUSvYRrKiCxUpqyL56bck=;
        b=fuGg3bXcFhts3oV6Et9q77iR2by6N/GCtm+CKfCaqTr1WDn8+1BkP9Cqk58EsZsf5l
         9UMzYv4LtLsDmI+YX8jKacViItpfYzizVvBRpJAsryVkml8A66XZiBbxZBF9hltbx4Od
         SlKFbe3AzpwqFeEb07bYnnyKupBzi7Nh6gXb2giERKmMk8UgYlRe0HaLXE5Ntp6+/lJW
         pfpjvH8C3xr1J50vCSNrnrDkggok9x57ZjOetFglAbMs/pdvfjdDA6UbKmj5UaFP/JVC
         SSKdYWWXBTaWhyoAQClUAQ2XXAKIaa+0duzoeY7ZKOjaEY8gvoqMocY4GA8jeG0W00rH
         Ui6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1720519361; x=1721124161;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Dfv7gGtl2BBhhXYfKoWXWjbUSvYRrKiCxUpqyL56bck=;
        b=O3Vu/qhdnVtIQ73YkTY3AaGY8xfDt1z1ttQMSbjv+KQ9NJV6O3qXuCYuWrLx1pTZwb
         bdY5cyuOh/cWuPPDST1Mxfe+X2g5ocx8KwYJosMEyDa1xqRTAcN2kwE1NXUtBDPx8dQM
         ET32KPDvLwrIIAewXaBBNx+ACKDz7EE5fGJ67M1R79XUCuausaEWuOvLU6L+ivJzPyu/
         ZflNLOZF9X0u+0FQTwvBeGnpDr0wsbTYUZavfIdDof0UGJPrljDcRgLVuYORbV9dqApO
         znGmcNydMjZRU+ULt7jcvWHdegde51ExJn4tQNL3UquFeNQzb5yYu37K8PQX9MC7rnXM
         0m1Q==
X-Forwarded-Encrypted: i=1; AJvYcCV2Mam3lg8aG+3/voe5onW3aOKIG/L1GT+cWEI8CJcHp5UDwCtDIBrSiHBT08rS1k8Qhr5ug+7d0H1A0QBOVHJwpieP
X-Gm-Message-State: AOJu0YwRfS8m9NnmDT/0+hgAHgs3Jc8uqUw/1rxq9tKrk/+YXvnKMYjL
	5jhLx+imOJHjniT8IhI7omhzQCbrUYQpCq+0TU9+uIIVD91eLtvsMbjO0UzmVMMCMjfc9U8/3SW
	uQ8UvHY8DntyULQ6N45U7itaKKsGoo0pVOqM=
X-Google-Smtp-Source: AGHT+IERf9qLOuLKXzm6euYl97dg6NVAfgyLbzjEFL1HvH87UuD/bcCKjgpLTMMUkVeKIWJ+6cwH6+RyFxY5JExe5J8=
X-Received: by 2002:a05:6870:8193:b0:254:b420:5ab with SMTP id
 586e51a60fabf-25eae78463bmr1610707fac.8.1720519360597; Tue, 09 Jul 2024
 03:02:40 -0700 (PDT)
MIME-Version: 1.0
References: <CAPDSy+5UU=GSFWTdrkHW7RXNL8pr5KWtLfp8zjExsZvvGczfEw@mail.gmail.com>
 <SA1PR15MB4370BBF870827575AA1C05A8B3DF2@SA1PR15MB4370.namprd15.prod.outlook.com>
In-Reply-To: <SA1PR15MB4370BBF870827575AA1C05A8B3DF2@SA1PR15MB4370.namprd15.prod.outlook.com>
From: Valentin Gosu <valentin.gosu@gmail.com>
Date: Tue, 9 Jul 2024 12:02:28 +0200
Message-ID: <CACQYfiJBWP61ar-_3u6BpbJYQHSW9-bJO3EcoS24RtB_VUoP2A@mail.gmail.com>
To: Ben Schwartz <bemasc@meta.com>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000515782061ccda17f"
X-W3C-Hub-DKIM-Status: validation passed: (address=valentin.gosu@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-3.4
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_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLACK=1.7, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1sR7gK-00GJzv-1j 30ef8c53bff61b74bbe967b07a6d4f8a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Proposal: a new WRAP UP capsule
Archived-At: <https://www.w3.org/mid/CACQYfiJBWP61ar-_3u6BpbJYQHSW9-bJO3EcoS24RtB_VUoP2A@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/52057
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>

--000000000000515782061ccda17f
Content-Type: text/plain; charset="UTF-8"

Hi David,

I really like your proposal. As Ben noted, this sort of control plane
signaling would be useful for other kinds of HTTP tunnels.

I'm also interested in your use case - what happens if a user wants to
upload/download a very large resource through the tunnel without being
aborted?
Would a pay-as-you-go model be viable, where in response to a WRAP_UP
capsule the client responds with a REFRESH_TOKEN that extends the lifetime
of the tunnel?

--Valentin

On Sat, 6 Jul 2024 at 02:07, Ben Schwartz <bemasc@meta.com> wrote:

> I think this is a reasonable idea.  Two questions come to mind:
>
> 1. Should this have a signal?  Right now there's no indication from the
> client about whether it supports this frame.  That makes it difficult for
> the server to understand whether the frame is working as intended.  Did I
> not give a long enough grace period, or are these clients running long
> because they don't recognize the capsule?
>
> 2. Should this be a stream-scoped HTTP/2+3 frame type?  There are lots of
> cases of streaming requests and responses that might encounter some kind of
> limit in HTTP, including WebSocket, WebTransport, and even plain old POST
> and GET.  Should "this stream is getting too long for me" be a built-in
> function of HTTP?
>
> --Ben
> ------------------------------
> *From:* David Schinazi <dschinazi.ietf@gmail.com>
> *Sent:* Friday, July 5, 2024 6:29 PM
> *To:* HTTP Working Group <ietf-http-wg@w3.org>
> *Subject:* Proposal: a new WRAP UP capsule
>
> Hi HTTP enthusiasts, Over in MASQUE land, as we're deploying our two-hop
> proxies, we decided we needed to put a cap on how many bytes we'd allow per
> token-authenticated connect-udp tunnel. Enforcing a hard limit is easy, but
> the issue
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
>
> ZjQcmQRYFpfptBannerEnd
> Hi HTTP enthusiasts,
>
> Over in MASQUE land, as we're deploying our two-hop proxies, we decided we
> needed to put a cap on how many bytes we'd allow per token-authenticated
> connect-udp tunnel. Enforcing a hard limit is easy, but the issue is that
> if the proxy aborts the tunnel halfway through, the web browser could be
> halfway through a proxied request. Since the browser doesn't know if the
> half-finished request was acted on or not, it can't retry it, so it has to
> surface the error to the user. Instead, we want the proxy to be able to
> warn the browser that this will happen soon, so that the browser can
> establish a new tunnel with a new token, and start sending new requests
> there. Conceptually this is a little like GOAWAY, but instead of "please
> wrap up this connection", it's "please wrap up this tunnel stream". It uses
> capsules, since this is a message from proxy to client. Here's a draft with
> diagrams:
>
> https://datatracker.ietf.org/doc/draft-schinazi-httpbis-wrap-up/
>
> https://davidschinazi.github.io/draft-schinazi-httpbis-wrap-up/draft-schinazi-httpbis-wrap-up.html
>
> I'd love to hear your thoughts.
>
> Thanks,
> David
>

--000000000000515782061ccda17f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi David,</div><div><br></div><div>I really like your=
 proposal. As Ben noted, this sort of control plane signaling would be usef=
ul for other kinds of HTTP tunnels.</div><div><br></div><div>I&#39;m also i=
nterested in your use case - what happens if a user wants to upload/downloa=
d a very large resource through the tunnel without being aborted?</div><div=
>Would a pay-as-you-go model be viable, where in response to a WRAP_UP caps=
ule the client responds with a REFRESH_TOKEN that extends the lifetime of t=
he tunnel?</div><div><br></div><div>--Valentin<br></div></div><br><div clas=
s=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, 6 Jul 2024 =
at 02:07, Ben Schwartz &lt;<a href=3D"mailto:bemasc@meta.com">bemasc@meta.c=
om</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex=
"><div class=3D"msg5973225868078740139">




<div dir=3D"ltr">
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I think this is a reasonable idea.=C2=A0 Two questions come to mind:</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
1. Should this have a signal?=C2=A0 Right now there&#39;s no indication fro=
m the client about whether it supports this frame.=C2=A0 That makes it diff=
icult for the server to understand whether the frame is working as intended=
.=C2=A0 Did I not give a long enough grace period,
 or are these clients running long because they don&#39;t recognize the cap=
sule?</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
2. Should this be a stream-scoped HTTP/2+3 frame type?=C2=A0 There are lots=
 of cases of streaming requests and responses that might encounter some kin=
d of limit in HTTP, including WebSocket, WebTransport, and even plain old P=
OST and GET.=C2=A0 Should &quot;this stream is
 getting too long for me&quot; be a built-in function of HTTP?</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
--Ben</div>
<div id=3D"m_5973225868078740139appendonsend"></div>
<hr style=3D"display:inline-block;width:98%">
<div id=3D"m_5973225868078740139divRplyFwdMsg" dir=3D"ltr"><font face=3D"Ca=
libri, sans-serif" style=3D"font-size:11pt" color=3D"#000000"><b>From:</b> =
David Schinazi &lt;<a href=3D"mailto:dschinazi.ietf@gmail.com" target=3D"_b=
lank">dschinazi.ietf@gmail.com</a>&gt;<br>
<b>Sent:</b> Friday, July 5, 2024 6:29 PM<br>
<b>To:</b> HTTP Working Group &lt;<a href=3D"mailto:ietf-http-wg@w3.org" ta=
rget=3D"_blank">ietf-http-wg@w3.org</a>&gt;<br>
<b>Subject:</b> Proposal: a new WRAP UP capsule</font>
<div>=C2=A0</div>
</div>

<div>
<div style=3D"display:none;font-size:1px;color:rgb(255,255,255);line-height=
:1px;height:0px;max-height:0px;opacity:0;overflow:hidden">
Hi HTTP enthusiasts, Over in MASQUE land, as we&#39;re deploying our two-ho=
p proxies, we decided we needed to put a cap on how many bytes we&#39;d all=
ow per token-authenticated connect-udp tunnel. Enforcing a hard limit is ea=
sy, but the issue
</div>
<div style=3D"display:none;font-size:1px;color:rgb(255,255,255);line-height=
:1px;height:0px;max-height:0px;opacity:0;overflow:hidden">
ZjQcmQRYFpfptBannerStart</div>
<div dir=3D"ltr" lang=3D"en" id=3D"m_5973225868078740139x_pfptBanner2gp6x7x=
" style=3D"display:block;text-align:left;margin:16px 0px;padding:8px 16px;b=
order-radius:4px;min-width:200px;background-color:rgb(243,228,150);border-t=
op:4px solid rgb(217,194,0)">
<div id=3D"m_5973225868078740139x_pfptBanner2gp6x7x" style=3D"float:left;di=
splay:block;margin:0px 0px 1px;max-width:600px">
<div id=3D"m_5973225868078740139x_pfptBanner2gp6x7x" style=3D"display:block=
;background-color:rgb(243,228,150);color:rgb(0,0,0);font-family:&quot;Arial=
&quot;,sans-serif;font-weight:bold;font-size:14px;line-height:18px">
This Message Is From an External Sender </div>
<div id=3D"m_5973225868078740139x_pfptBanner2gp6x7x" style=3D"display:block=
;background-color:rgb(243,228,150);color:rgb(0,0,0);font-weight:normal;font=
-family:&quot;Arial&quot;,sans-serif;font-size:12px;line-height:18px;margin=
-top:2px">
</div>
</div>
<div style=3D"clear:both;display:block;line-height:0;font-size:0.01px;heigh=
t:0px">
=C2=A0</div>
</div>
<div style=3D"display:none;font-size:1px;color:rgb(255,255,255);line-height=
:1px;height:0px;max-height:0px;opacity:0;overflow:hidden">
ZjQcmQRYFpfptBannerEnd</div>
<div dir=3D"ltr">Hi HTTP enthusiasts,
<div><br>
</div>
<div>Over in MASQUE land, as we&#39;re deploying our two-hop proxies, we de=
cided we needed to put a cap on how many bytes we&#39;d allow per token-aut=
henticated connect-udp tunnel. Enforcing a hard limit is easy, but the issu=
e is that if the proxy aborts the tunnel
 halfway through, the web browser could be halfway through a proxied reques=
t. Since the browser doesn&#39;t know if the half-finished request was acte=
d on or not, it can&#39;t retry it, so it has to surface the error to the u=
ser. Instead, we want the proxy to be able
 to warn the browser that this will happen soon, so that the browser can es=
tablish a new tunnel with a new token, and start sending new requests there=
. Conceptually this is a little like GOAWAY, but instead of &quot;please wr=
ap up this connection&quot;, it&#39;s &quot;please
 wrap up this tunnel stream&quot;. It uses capsules, since this is a messag=
e from proxy to client. Here&#39;s a draft with diagrams:</div>
<div><br>
</div>
<div><a href=3D"https://datatracker.ietf.org/doc/draft-schinazi-httpbis-wra=
p-up/" target=3D"_blank">https://datatracker.ietf.org/doc/draft-schinazi-ht=
tpbis-wrap-up/</a><br>
</div>
<div><a href=3D"https://davidschinazi.github.io/draft-schinazi-httpbis-wrap=
-up/draft-schinazi-httpbis-wrap-up.html" target=3D"_blank">https://davidsch=
inazi.github.io/draft-schinazi-httpbis-wrap-up/draft-schinazi-httpbis-wrap-=
up.html</a><br>
</div>
<div><br>
</div>
<div>I&#39;d love to hear your thoughts.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>David</div>
</div>
</div>
</div>

</div></blockquote></div>

--000000000000515782061ccda17f--

