.net的请求流程

WebForm的请求流程:

1.首先进入HttpRuntime, 然后通过HttpApplicationFactory创建一个httpApplication对象

2.HTTP Application会创建该次请求的HttpContext(上下文), 里面有httprequest,httpResponse, HttpSessionState等

3.请求会经过Module,每一个module会对请求做不同的操作,就是管道事件,里面有19个管道事件,包含认证,授权,缓存检查,等等

4.请求会到HttpHandler,处理我们的逻辑。webForm每个页面都是继承"Page",而“Page”继承了“IHttpHandler”接口。

5.HttpHandler处理完后,又会回到Module,这时可以做一些实际工作后的事情。
我们很多事件,是不是有分前与后,就是这个道理。进行事件的前后拦截。

MVC请求流程:

  • IS 6以及IIS 7经典模式
    早期的IIS版本中,IIS接收到一个请求时先判断请求类型,如果是静态文件直接由IIS处理;如果是一个ASP.NET请求类型,IIS把请求发送给IIS的扩展接口ASP.NET ISAPI DLL。ISAPI相当于ASP.NET应用的容器,这也是我们之前讲的。

  • IIS 7 集成模式
    IIS 7和之前的版本区别比较大,IIS7直接把ASP.NET的运行管道流程集成到了IIS上。

    • 在IIS7中,ASP.NET请求处理管道Pipeline直接覆盖了IIS本身的管道Pipeline,IIS整个流程按照ASP.ENT管道流程执行,例如BeginRequest、AuthenticateRequest、…、EndRequest。而不是通过插件扩展(ISAPI)形式,不同的内容(jpg、html、php等)通过不同的插件来执行。

    • IIS7的优势体现在哪里?开发人员可以实现自定义的HttpModule或者HttpHandler,然后直接集成到IIS上,例如,我可以自定义一个JpgHttpHandler,然后通过IIS的Handler部署方式,把JpgHttpHandler部署到IIS上,处理所有的请求格式为*.jpg的请求。

1.首先进入HttpRuntime,一样通过HttpApplicationFactory创建HttpApplication

2.HttpApplication会创建该次请求的上下文

3.进入到urlRouteModule(路由系统),从http请求获取路由数据和对应的controller以及Action

4.匹配一个RouteData对象,调用MVCRouteHandler,请求HttpHandler

5.执行preocessRequest方法,使用ControllerBuilder获取ControllerFactory

6.调用Controller以及Action,执行

7.返回ActionResult

.net core请求流程:

  1. 负责创建IWebHost的宿主构造器IWebHostBuilder
  2. 代表宿主的IWebHost接口
  3. 用于构建请求管道的IApplicationBuilder
  4. 中间件衔接而成的RequestDelegate
  5. 代表Web Server的IServer接口
  6. 贯穿请求处理管道的请求上下文HttpContext
  7. 可以用来注册后台服务的IHostedService接口

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值