With ASP.NET Core, we are now agnostic from the host and the web server. We use the same philosophy as OWIN, which means using an abstraction between applications, servers, and hosts. The new thing about it is we can compose the pipeline for our application by adding middleware components to this pipeline.
ASP.NET Core respects OWIN principles but is not OWIN. One of the differences is that it maps all incoming data from a request to an HttpContext object available from all middleware (built-in, in line created, or component created). Another difference from the previous versions of ASP.NET is that the HttpContext object is now agnostic from IIS and System.Web, and is more lightweight. Nevertheless, ...