Asp.Net MVC一个Http请求流程
2021/5/9 20:27:37
本文主要是介绍Asp.Net MVC一个Http请求流程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
不管技术如何更新迭代,依然有很多的项目,很多的程序员在使用Asp.Net开发着Web应用。今天大概梳理了一下一个Asp.Net MVC框架处理一个Http请求的过程,其中如果有不对的地方,欢迎留言指正。
1.HTTP.sys驱动程序接收到了http请求,
2.将请求分发给w3wp进程(工作进程),
3.工作进程初始化的时候会加载Aspnet_ispai.dll,
4.ASP.NET ISAPI再负责进行CLR的加载,
5.CLR通过AppDomainFactory为该Web应用创建一个应用程序域(AppDomain),
6.AppDomain加载IsapiRuntime运行时,接管Http请求,
7.IsapiRuntime创建IsapiWorkerRequest对象,用于封装当前的http请求,并将该对象传递给ASP.NET运行时:HttpRuntime,
8.请求开始进入Asp.Net管道,HttpRuntime会创建用于表示当前HTTP请求的上下文(Context)对象:HttpContext,这个上下文将贯穿整个http请求响应过程,
9.HttpRuntime会利用HttpApplicationFactory创建新的或者获取现有的HttpApplication对象,HttpContext作为HttpApplication对象的一个属性存在。实际上,ASP.NET维护着一个HttpApplication对象池,HttpApplicationFactory从池中选取可用的HttpApplication用户处理HTTP请求,处理完毕后将其释放到对象池中,
10.在HttpApplication初始化过程中,会根据配置文件加载并初始化相应的HttpModule对象。对于HttpApplication来说,在它处理HTTP请求的不同的阶段会触发不同的事件(Event),而HttpModule的意义在于通过注册HttpApplication的相应的事件,将所需的操作注入整个HTTP请求的处理流程,HttpApplication是ASP.NET Pipline(管道)的载体,管理了请求的整个生命周期,
11.HttpModule初始化的时候,会根据配置文件中配置的资源类型实例化对应的HttpHandlerFactory,HttpHandlerFactory创建对应的HttpHandler,对于aspx的页面,创建HttpHandler为System.Web.UI.Page对象,
12.Asp.Net MVC框架是基于Asp.Net框架扩展了HttpModule和HttpHandler,在Application_Start注册路由表,在UrlRoutingModule中遍历路由表,匹配路由规则,在MvcHandler中通过反射激活Controller,并执行Action方法
这篇关于Asp.Net MVC一个Http请求流程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统