Update web servers (#21370)

* Update web servers

* Update web servers

* Update web servers

* Update web servers

* Update aspnetcore/fundamentals/servers/index.md

Co-authored-by: Chris Ross <Tratcher@Outlook.com>

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
pull/21372/head
Rick Anderson 2021-01-30 15:38:25 +10:00 committed by GitHub
parent 8f8e7317bc
commit ff25995069
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 3 deletions

View File

@ -21,7 +21,7 @@ An ASP.NET Core app runs with an in-process HTTP server implementation. The serv
ASP.NET Core ships with the following:
* [Kestrel server](xref:fundamentals/servers/kestrel) is the default, cross-platform HTTP server implementation. Kestrel provides the best performance and memory utilization, but it doesn't have some of the advanced features in HTTP.sys such as port sharing.
* [Kestrel server](xref:fundamentals/servers/kestrel) is the default, cross-platform HTTP server implementation. Kestrel provides the best performance and memory utilization, but it doesn't have some of the advanced features in HTTP.sys. For more information, see [Kestrel vs. HTTP.sys](#korh) in this document.
* IIS HTTP Server is an [in-process server](#hosting-models) for IIS.
* [HTTP.sys server](xref:fundamentals/servers/httpsys) is a Windows-only HTTP server based on the [HTTP.sys kernel driver and HTTP Server API](/windows/desktop/Http/http-api-start-page).
@ -32,6 +32,26 @@ When using [IIS](/iis/get-started/introduction-to-iis/introduction-to-iis-archit
The [ASP.NET Core Module](xref:host-and-deploy/aspnet-core-module) is a native IIS module that handles native IIS requests between IIS and the in-process IIS HTTP Server or Kestrel. For more information, see <xref:host-and-deploy/aspnet-core-module>.
<a name="korh"></a>
## Kestrel vs. HTTP.sys
Kestrel has the following advantages over HTTP.sys:
* Better performance and memory utilization.
* Cross platform
* Agility, it's developed and patched independent of the OS.
* Programmatic port and TLS configuration
* Extensibility that allows for protocols like [PPv2](https://github.com/aspnet/AspLabs/blob/master/src/ProxyProtocol/ProxyProtocol.Sample/ProxyProtocol.cs) and alternate transports.
Http.Sys operates as a shared kernel mode component with the following features that kestrel does not have:
* Port sharing
* Kernel mode windows authentication. [Kestrel supports only user-mode authentication](xref:security/authentication/windowsauth#kestrel).
* Fast proxying via queue transfers
* Direct file transmission
* Response caching
## Hosting models
Using in-process hosting, an ASP.NET Core app runs in the same process as its IIS worker process. In-process hosting provides improved performance over out-of-process hosting because requests aren't proxied over the loopback adapter, a network interface that returns outgoing network traffic back to the same machine. IIS handles process management with the [Windows Process Activation Service (WAS)](/iis/manage/provisioning-and-managing-iis/features-of-the-windows-process-activation-service-was).
@ -57,8 +77,8 @@ ASP.NET Core ships with [Kestrel server](xref:fundamentals/servers/kestrel), whi
## Kestrel
[Kestrel server](xref:fundamentals/servers/kestrel) is the default, cross-platform HTTP server implementation. Kestrel provides the best performance and memory utilization, but it doesn't have some of the advanced features in HTTP.sys such as port sharing.
[Kestrel server](xref:fundamentals/servers/kestrel) is the default, cross-platform HTTP server implementation. Kestrel provides the best performance and memory utilization, but it doesn't have some of the advanced features in HTTP.sys. For more information, see [Kestrel vs. HTTP.sys](#korh) in this document.
Use Kestrel:
* By itself as an edge server processing requests directly from a network, including the Internet.