-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Updated Kestrel HTTP/3 docs #35300
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
Updated Kestrel HTTP/3 docs #35300
Conversation
I don't think that's necessary and IMHO having the "practical" parts of the docs (requirements etc.) as first makes more sense. When you read the article you wanna know how to start and the info about benefits is optional knowledge. EDIT: I see, client docs are organized that way although it's structured more like intro than list of benefits. Feel free to dismiss this comment. |
|
||
HTTP/3 isn't currently supported on macOS and may be available in a future release. | ||
HTTP/3 uses QUIC as its transport protocol. The ASP.NET Core implementation of HTTP/3 depends on [MsQuic](https://github.com/microsoft/msquic) to provide QUIC functionality. As a result, ASP.NET Core support of HTTP/3 depends on MsQuic platform requirements. For more information on how to install **MsQuic**, see [QUIC Platform dependencies](/dotnet/fundamentals/networking/quic/quic-overview#platform-dependencies). If the platform that Kestrel is running on doesn't have all the requirements for HTTP/3, then it's disabled, and Kestrel will fall back to other HTTP protocols. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did I write that? Oh boy is it clunky 😄
## HTTP/3 requirements | ||
|
||
HTTP/3 has different requirements depending on the operating system. If the platform that Kestrel is running on doesn't have all the requirements for HTTP/3, then it's disabled, and Kestrel will fall back to other HTTP protocols. | ||
|
||
### Windows | ||
|
||
* Windows 11 Build 22000 or later OR Windows Server 2022. | ||
* TLS 1.3 or later connection. | ||
|
||
### Linux | ||
|
||
* `libmsquic` package installed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@CarnaViire Shouldn't this stay in .NET 8 and lower versions of this document? Ditto for all the other information you deleted. Tell me what needs to stay.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
None of the requirements needs to stay for any version. The new paragraph links to System.Net.Quic
requirements that cover the necessary info about which MsQuic version is compatible with what .NET version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No changes for .NET 9+? If so, I'll remove my .NET 8 version and have one file for .NET 8+
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, all the changes were done in way that they will be compatible with older MsQuic versions. E.g. if newer MsQuic is present, async cert validation will happen; if not, we fallback to the old, sync behavior.
### macOS | ||
## HTTP/3 requirements | ||
|
||
HTTP/3 isn't currently supported on macOS and may be available in a future release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What version, if any, does this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MsQuic is backward compatible and since MsQuic 2.4 we also publish Brew package for it. So technically all officially supported versions but with caveats (it's more complicated to make it load MsQuic), see https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/quic/quic-overview#macos.
Note that all of this is covered in the newly linked requirements.
@CarnaViire I'm going to start over and add your intentions. |
Fixes #34880
In general, I tried to align the ASP.NET Core article with the .NET one (Use HTTP/3 with HttpClient)
HttpClient
is mentioned.cc @ManickaP PTAL
Internal previews