-
Notifications
You must be signed in to change notification settings - Fork 25.3k
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
HTTP2 scenario coverage #7161
Comments
New kestrel APIs:
|
A Tale of Two Options
TOC and topic proposal (for Option 2):
Title: HTTP/2 support in ASP.NET Core 👉 Which way would u like to go? |
Why not both? 😁 There won't be a lot of common HTTP/2 content so the first option should be adequate. Having the second page too that gives you an overview of all your options would be a bonus. |
Let's go ahead with Option 1. I'm just concerned about the size of the Kestrel and IIS topics (and to some extent versioning hell 😈 in the Kestrel topic). This would have been an opportunity to (mostly) cleanly break out a subject into its own topic. However, it probably is less work and a cost savings to roll it into the existing topics. Side-note on the Kestrel topic: I'm not happy with the heading/section structure of the topic, especially for the config/options subject matter, given how much content was placed into the topic for 2.0 and 2.1. Without good section support, the topic has become a kind of word wall/code wall and the topic's internal TOC is just about useless. RE: Both Wouldn't that be duplicate coverage? I'm looking at the backlog, too. 🏃 😅 Might be best to put the call for a standalone topic on a new issue. |
The part you don't get with option 1 is the high level side-by-side comparison. E.g. which server should I use? Option 2 wouldn't need to include the extra details like #7161 (comment). When we get around to server push then we'll want a shared HTTP/2 doc because that would be a common API across multiple servers. dotnet/aspnetcore#2727. That likely won't happen until 3.0 though. |
We could (for the time being until 3.0) place that content into the Servers landing page: https://docs.microsoft.com/aspnet/core/fundamentals/servers/ ... and then link back out to it from the individual topics. Later, that content could move to the dedicated HTTP/2 topic. |
... or bite the bullet and go ahead and create the dedicated HTTP/2 topic now with it. That wouldn't take long if a basic set of guiding principles for server selection is provided there. (No duplication of what's going into the individual topics.) |
The server landing page would be a good start. |
ok |
@Tratcher When you say "high level side-by-side comparison," do you mean that you want the content rolled into each server section of the Servers landing page, or you you want one HTTP/2 support section laid out similar to the way you have them outlined in the OP ☝️? https://docs.microsoft.com/aspnet/core/fundamentals/servers/ |
One HTTP/2 section like the OP. There are enough caveats around versions that it's nice to see side by side. |
@Tratcher Your OP suggests that the IIS in-process deployment scenario relies on the Kestrel limits+options ... is that correct? ... similar question on HTTP.sys. I don't see new props in the |
No, IIS in-process is completely independent of Kestrel. Its HTTP/2 configuration/limitations stem from Http.Sys. For IIS/HttpSysServer/Http.Sys HTTP/2 was not initially configurable, it was automatically on if the base requirements were met (TLS, ALPN, Win10). The Http.Sys team is only now retroactively adding APIs and config flags to disable it. One is |
For now there are no new APIs for HttpSysServer or IIS, only HttpRequest.Protocol will indicate if HTTP/2 was negotiated. |
Independent of Kestrel but not independent of the TFM/app framework [i.e., ".NET Core (in proc restriction)"] ... that's why I thought they might be connected. One approach we could take: I can go ahead with what I have (it's not very much text to review), and you can correct it and indicate what it's missing on review. RE: HTTP.sys
|
Another slightly confusing point: This issue and your OP say for 2.2, but your outline states 2.1. Not sure how to version it. However, we can fix that stuff on review easily enough. [EDIT] ... and I'm noting on the server-side: WS2016 or better (Win10 equivalent) ... and for IIS, IIS 10 or better. |
Edited to clarify 2.2 for Kestrel and no version for the others. The HttpSysServer/IIS/Http.Sys stuff isn't dependent on the version of ASP.NET Core since the functionality is all provided by the OS. The only change to these for 2.2 is making HttpRequest.Protocol correctly report HTTP/2. |
This is for tracking notes about HTTP/2 related features in 2.2. Most of the work will be related to Kestrel, but HttpSys and IIS In-Proc will also get a few notes.
HTTP/2 support is limited by TLS ALPN availability on various platforms.
Kestrel
Not ASP.NET Core version specific, only constrained by the OS:
HttpSysServer
IIS In proc
IIS Out of proc
The text was updated successfully, but these errors were encountered: