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
parent
8f8e7317bc
commit
ff25995069
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue