在本节中,您将看到ASP.NET Core应用程序如何运行的,从请求URL开始到页面呈现在浏览器中。 为此,您将看到 一个HTTP请求在Web服务器中是如何被处理的、ASP.NET Core如何扩展该过程以创建动态页面。

HTTP请求在Web服务器中是如何被处理

  当用户在浏览器中输入URL并按下回车。 浏览器将使用HTTP协将用户的请求发送到托管Web应用程序的服务器,一旦服务器收到请求,它将根据请求的类型生成相应HTTP响应。 响应可能是一个网页、图像、JavaScript文件或简单确认。当浏览器接收到响应时,它会将内容在屏幕上呈现给用户。如下图所示:

《ASP.NET Core In Action》读书笔记系列三 ASP.NET Core如何处理请求的?-LMLPHP

 

 ASP.NET Core如何处理请求

  ASP.NET Core应用和浏览器之间的交互,和上面所讲的过程一样。它包含了处理请求的所有功能(验证请求是否有效、登录以及生成相应的HTML)。如下图所示:反向代理服务器将请求传递给您的应用程序之前捕获该请求。 在Windows中,反向代理服务器通常是IIS,在Linux或macOS上它可能是NGINX或者Apache(反向代理是负责接收请求的程序,并将请求转发到合适的Web服务器。 反向代理被暴露到互联网中,而底层的Web服务器只暴露给反向代理,  这样做的好处主要是安全性和提高Web服务器性能)。

  请求从反向代理转发到ASP.NET Core应用程序。每个ASP.NET Core应用程序都有一个内置的Web服务器,默认情况下是Kestrel负责接收原始请求并构建内部数据结构(一个HttpContext对象),可供应用程序的其余部分使用,它包含了应用创建响应所需的全部信息。 一旦应用程序处理完请求(通过中间件及应用逻辑),它将返回Web服务器响应。 ASP.NET Core Web服务器将响应转换为原始HTTP响应,并将其发送回反向代理,反向代理再将响应转发到用户的浏览器。

《ASP.NET Core In Action》读书笔记系列三 ASP.NET Core如何处理请求的?-LMLPHP

  ASP.NET Core 的简介,就介绍到这里,接下来我们进入深入的研究和学习。在这之前,请选为你的ASP.NET Core 应用选择一个运行的平台,你可以选择 .NET Core、Full .NET Framework. 如果你的应用没有依赖Windows的特定功能(注册表,目录服务,微软发布了兼容性包,这使得这些API在.NET Core中可用),那么请选择.NET Core ,否则请选择Full .NET Framework。接下来章节所涉及的示例,我们使用windows 10 + Visual Studio 2107 进行演示(不用担心,这些代码完全可以运行在linux, macOs等平台上)如图所示:

《ASP.NET Core In Action》读书笔记系列三 ASP.NET Core如何处理请求的?-LMLPHP

  

谢谢你的阅读,下节见!如果期待本系列,请点一下推荐!

01-25 17:48