Subject: [quicwg/base-drafts] Alt-Svc and extension equivalence across H2 and H3 (#3101)

From: Lucas Pardue <[email-masked]>
Date: Wed, 16 Oct 2019 14:18:28 -0700

This is a spin off from a [thread I started on the HTTP WG mailing list](https://lists.w3.org/Archives/Public/ietf-http-wg/2019OctDec/0022.html).

To avoid duplication, the TL;DR is that there could be cases where a H2 connection that is using some type of extension advertises an H3 alternative that is incapable of supporting the connection (most likely due to a configuration mistake). The example I use is WebSockets, which is predicate on extending CONNECT, but it probably applies to all version-specific extensions.

I don't think there is a non-trivial way to prevent such cases. So I propose that we help the ecosystem spot such cases but introducing an error code (this is quite similar to the 421 status code defined in RFC 7838). This error code can be used when closing a stream or a connection - clients can factor this in to their Alt-Svc selection logic, while servers could analyse error codes to spot misconfigurations etc.

Since this problem is more-or-less introduced by HTTP/3, it feels right to define an error code in this document. A separate I-D can specify a similar code for HTTP/2.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3101

---

From: Mike Bishop <[email-masked]>
Date: Thu, 17 Oct 2019 11:36:11 -0700

That's basically what HTTP_1_1_REQUIRED / HTTP_VERSION_FALLBACK were for.  We originally used HTTP status 505 with a header describing what versions could have handled the request.  However, during HTTP/2 development we concluded that a stream error was more appropriate than a status code, because you might discover the blocker during response generation.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3101#issuecomment-543306498

---

From: Mike Bishop <[email-masked]>
Date: Thu, 17 Oct 2019 11:39:23 -0700

(See [draft-nottingham-http-over-version](https://tools.ietf.org/html/draft-nottingham-http-over-version-00) for the 505 extension that got abandoned in favor of the error code.)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3101#issuecomment-543307754

---

From: Lucas Pardue <[email-masked]>
Date: Thu, 17 Oct 2019 13:06:25 -0700

Closed #3101.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3101#event-2722596658

---

From: Lucas Pardue <[email-masked]>
Date: Thu, 17 Oct 2019 13:06:25 -0700

Discussed f2f at Cupertino interim. The feeling was that a new error code could be useful but that we don't need to define it in the HTTP/3 core doc. Since I was going to make a separate document for the HTTP/2 version of this code, I'll simply define the code there. Closing this issue.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3101#issuecomment-543340003