Subject: New I-D: Bootstrapping WebSockets with HTTP/3

From: Ryan Hamilton <[email-masked]>
Date: Fri, 27 Aug 2021 06:45:10 -0700

Howdy Folks,

I've uploaded a -00 of a new draft about Bootstrapping WebSockets with
HTTP/3. Basically it's a trivial draft that just specifies an HTTP/3
version of the HTTP/2 setting from RFC 8441 (and specifies that the
semantics of Extended CONNECT are otherwise identical to that in RFC 8441).

  https://datatracker.ietf.org/doc/draft-hamilton-httpbis-h3-websockets/

This is my first time doing this process so I've quite likely done
something wrong. :)

Cheers,

Ryan

---

From: Lucas Pardue <[email-masked]>
Date: Fri, 27 Aug 2021 15:48:54 +0100

Hey Ryan,

> This is my first time doing this process so I've quite likely done

In a limited context, I think this is mostly the correct way to do this and
HTTP is the right WG. I do, however, think that it isn't quite so simple as
the text makes out. There's a few minor details that need adding for
HTTP/3, such as some text to describe how to terminate HTTP/3 streams.

In a more broad context, I wonder how (or if)  the current discussions in
MASQUE and WebTrans about aligning on extended CONNECT over HTTP/3 factor
in to the work here. If this piece is solely focused on WebSockets that
might be OK, just trying to understand the pitch.

Cheers
Lucas

---

From: Ryan Hamilton <[email-masked]>
Date: Fri, 27 Aug 2021 11:19:06 -0700

On Fri, Aug 27, 2021 at 7:49 AM Lucas Pardue <[email-masked]>
wrote:

> In a limited context, I think this is mostly the correct way to do this
> and HTTP is the right WG. I do, however, think that it isn't quite so
> simple as the text makes out. There's a few minor details that need adding
> for HTTP/3, such as some text to describe how to terminate HTTP/3 streams.
>

Oh, that's a good point. At this point my brain mostly skips over such
differences between HTTP/2 and HTTP/3 but you're right that the text should
make them clear. If we think this draft is the right path forward, I'll
update it accordingly.

> might be OK, just trying to understand the pitch.

Yes, my particular motivation is specifically to enable WebSockets over
HTTP/3 in a server which currently supports WebSockets over HTTP/2. Since
most of the implementation is identical between both versions of HTTP
(other than the value of the SETTING) it would be trivial to support...
except that there is no spec that applies to HTTP/3 :)

I'm not terribly familiar with the discussions in MASQUE or WebTrans about
extended CONNECT. Are they intending to revise 8441 for WebSockets?

Cheers,

Ryan

---

From: "Martin Thomson" <[email-masked]>
Date: Mon, 30 Aug 2021 09:45:20 +1000

On Sat, Aug 28, 2021, at 04:19, Ryan Hamilton wrote:
> I'm not terribly familiar with the discussions in MASQUE or WebTrans 
> about extended CONNECT. Are they intending to revise 8441 for 
> WebSockets?

My understanding is that they just plan to use it (though the recent MASQUE CONNECT-IP update did not include that change).  I don't think that your proposal is affected by this.  I would say carry on.

---

From: Ryan Hamilton <[email-masked]>
Date: Mon, 30 Aug 2021 07:41:46 -0700

On Sun, Aug 29, 2021 at 4:51 PM Martin Thomson <[email-masked]> wrote:

> My understanding is that they just plan to use it (though the recent
> MASQUE CONNECT-IP update did not include that change).  I don't think that
> your proposal is affected by this.  I would say carry on.
>

Thanks for the update! That's excellent. Ok, per Lucas's suggestion I've
added text about stream closure and added a link to the relevant section of
RFC 9000. I've updated the copy of the doc in github. Should I also push a
new ID?

Cheers,

Ryan

---

From: David Schinazi <[email-masked]>
Date: Mon, 30 Aug 2021 17:28:59 -0700

(speaking solely as a QUIC/MASQUE/WebTransport enthusiast)

I agree with MT here. WebTransport is currently relying on Extended
CONNECT, and MASQUE is going to soon (assuming the MASQUE WG reaches
consensus on that, but everyone seemed to agree last time we discussed it -
I've been planning on writing PRs for CONNECT-UDP and CONNECT-IP but I got
distracted with other things). Over in WebTransport and MASQUE we had
somewhat forgotten about the fact that HTTP/2 SETTINGS need to be redefined
for HTTP/3, but that was an oversight. So I'm in favor of progressing
draft-hamilton-httpbis-h3-websockets as both WebTransport and MASQUE will
likely have a dependency on it. The sooner we get this in the pipeline, the
better.

David

---

From: Victor Vasiliev <[email-masked]>
Date: Tue, 31 Aug 2021 11:56:02 -0400

I did not forget about it; <
https://www.ietf.org/archive/id/draft-ietf-webtrans-http3-01.html#section-3.2>
covers this explicitly for WebTransport.

---

From: Lucas Pardue <[email-masked]>
Date: Tue, 31 Aug 2021 17:25:11 +0100

> likely have a dependency on it. The sooner we get this in the pipeline, the

+1

On the whole, I think this draft is the right way to go for WebSockets and
any other drafts that might also want to use extended CONNECT.