Saturday 9 July 2022

Unpacking "In-Process" HTTP Servers in ASP.NET Core

An ASP.NET Core application runs with an in-process HTTP server implementation which listens for HTTP requests and wraps up the request and makes it accessible to the program in an HttpContext

An in-process server sits within the same process as the application using it.

Note that this particular HttpContext differs from that in System.Web

The default in-process HTTP server is Kestrel (which is a cross-platform HTTP server implementation). 

For more advanced features use HTTP.sys. Note that HTTP.sys only runs on Windows. Note that IIS itself is built on HTTP.sys.

Among the additional features of HTTP.sys over Kestrel, are port sharing (so multiple listeners can listen on the same combination of port and IP address). Well-known port numbers include port 80 for HTTP and port 443 for HTTPS, the extension of HTTP using TLS for encryption (formerly SSL).

No comments: