Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kestrel server vs HTTP.sys [closed]

In Dotnet core, there are two built-in servers Kestrel and HTTP.sys.

I would like to know the differences between those two servers and when to use a particular server when it comes to performance, reliability, micro-service friendly, etc.

Answer: Kestrel vs. HTTP.sys from the official Microsoft docs.

like image 500
marvelTracker Avatar asked Feb 12 '19 02:02

marvelTracker


1 Answers

See Kestrel vs. HTTP.sys from the official Microsoft docs.

Main differences are that HTTP.sys is windows only while kestrel can run on linux as well. That also means that HTTP.sys works with windows authentication "out of box" with few settings whereas kestrel needs a lot more to set it up. Performance wise they are similar with http.sys being a bit faster since it is optimized for windows. Also the base for IIS is HTTP.sys.

Reliability not only depends on the server but the infra it is on. I.E if you put both in docker with kubernetes they will be reliable and scalable since you will have containers to take care of that part.

Now i have microservices on both and they are very friendly and i use them for different purposes, environments depending on the service in question.

Also to mention that for public facing services i use reverse proxy anyway i am not familiar with how the two act in that role. Having said that Microsoft recommends HTTP.sys if you have a front facing service since it is more resilient to attacks out of box, but like I said since my services are behind a reverse proxy that handles those requests cannot verify the claims.

hope this helps a bit

like image 162
markorial Avatar answered Sep 22 '22 00:09

markorial