Draft:Kestrel Web Server
Review waiting, please be patient.
This may take 6 weeks or more, since drafts are reviewed in no specific order. There are 1,278 pending submissions waiting for review.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Reviewer tools
|
Kestrel is a free and open source web server that is created by Microsoft Corporation. It's the primary web server in .NET ecosystem and used mainly as an integral piece of ASP.NET Core nevertheless it's still possible to plug in custom web servers to ASP.NET Core through IServer interface. Usage of Kestrel outside of ASP.NET Core is very limited since Kestrel is designed to power ASP.NET Core, Kestrel is licensed under MIT license.[1][2][3]
Kestrel utilizes Async IO (SocketAsyncEventArgs) with tasks as It's concurrency model to achieve high throughput while internally optimizing usage of strings to byte arrays and containing small amount of platform specific unmanaged "memory unsafe" code for performance of hot critical paths.
History
[edit]Kestrel originally started when ASP.NET Core 1.0 was released, in this stage Kestrel was not ready as an edge server due to security testing being incomplete during earlier stages. As of ASP.NET Core 2.0 Kestrel is edge ready meaning it can receive requests without having a reverse proxy such as IIS or Nginx.[4]
Feature Set
[edit]Protocol | Platform | Notes |
---|---|---|
HTTP/1.1 | Windows, Linux, Mac OS | |
HTTP/2 | Windows, Linux, Mac OS | |
SPDY | Outdated | |
HTTP/3 | Windows, Linux | libmsquic required except for Windows |
Kestrel no longer supports SSL and marks them as depreciated.
TLS/SSL Version | Notes |
---|---|
SSL 1 | Insecure - Not supported |
SSL 2 | Insecure - Depreciated |
SSL 3 | Insecure - Depreciated |
TLS 1.0 | Insecure - Depreciated |
TLS 1.1 | Insecure - Depreciated |
TLS 1.2 | |
TLS 1.3 |
YARP
[edit]There is a reverse proxy based on Kestrel named YARP (Yet Another Reverse Proxy) it is highly configurable and originally created in Microsoft due to internal development because developers at Microsoft would create multiple reverse proxies and instead of reinventing the wheel each time engineers decided for a standardized reverse proxy across the company.
YARP is more customizable than nginx and it suits as an easy way to create web application firewalls compared to writing nginx modules or modifying nginx itself.[5][6][7][8]
See also
[edit]References
[edit]- ^ dotnet/aspnetcore, .NET Platform, 2024-11-24, retrieved 2024-11-25
- ^ dotnet-bot. "IServer Interface (Microsoft.AspNetCore.Hosting.Server)". learn.microsoft.com. Retrieved 2024-11-25.
- ^ "What is Kestrel (vs IIS / Express)". Stack Overflow. Retrieved 2024-11-25.
- ^ "Web server implementations in ASP.NET Core | Microsoft Docs". 2017-03-30. Archived from the original on 2017-03-30. Retrieved 2024-11-25.
- ^ dotnet-bot. "SslProtocols Enum (System.Security.Authentication)". learn.microsoft.com. Retrieved 2024-11-25.
- ^ gewarren (2021-09-15). "Breaking change: Kestrel: Default supported TLS protocol versions changed - .NET". learn.microsoft.com. Retrieved 2024-11-25.
- ^ "YARP Documentation". microsoft.github.io. Retrieved 2024-11-25.
- ^ wtgodbe (2024-03-14). "Use HTTP/3 with the ASP.NET Core Kestrel web server". learn.microsoft.com. Retrieved 2024-11-25.