Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a HTTP/3 with Fallback option #1810

Open
seanmonstar opened this issue Apr 28, 2023 · 2 comments
Open

Implement a HTTP/3 with Fallback option #1810

seanmonstar opened this issue Apr 28, 2023 · 2 comments
Labels
pr-welcome The feature is welcome to be added, instruction should be found in the issue.

Comments

@seanmonstar
Copy link
Owner

This is an addition to the experimental HTTP/3 support already added (#1558). We can't use ALPN to determine if the endpoint supports HTTP/3, like we can with HTTP/2. It uses different transport protocols. But, we could do something like "Happy Eyeballs" for IPv4 and IPv6.

Such an option, if enabled, would mean we would start an HTTP/3 connection, and after some delay, if not connected, start an HTTP/1 or 2 connection, and use whichever becomes available first.

@seanmonstar seanmonstar added the pr-welcome The feature is welcome to be added, instruction should be found in the issue. label Apr 28, 2023
@xkeyC
Copy link

xkeyC commented Feb 7, 2024

Http3 servers should have alt-svc: h3=":443"; ma=xxxx header.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc .

The client should use this header after the first http1/http2 request to determine whether it should try http3?

@FireMasterK
Copy link

We have an existing issue for that in #1138, however there also exists SVCB records which can also be used for http/3 negotiation: https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-welcome The feature is welcome to be added, instruction should be found in the issue.
Projects
None yet
Development

No branches or pull requests

3 participants