HTTP
2022-05-05 09:26:14 5 举报
HTTP流程
作者其他创作
大纲/内容
请求传递给HTTP.SYS
调用ISAPIRuntime.StartProcessing()方法
创建ISAPIRuntime对象
调用ProcessingRequest()方法
如果应用程序具有Globa.asax文件,则ASP.NET会创建Global.asax类(该类继承自HTTPApplication类)的一个实例,并使用该派生类表示应用层。
aspnet-isapi.dll
向HttpApplicationFactory申请一个HttpApplication对象
调用HttpRuntime.ProcessingRequest()方法。将前面的HttpWorkerRequest作为参数传入
创建HttpRuntime对象
创建HttpContext对象(其中包含了HttpRequest和HttpResponse)
根据传入的HTTP请求创建HTTPWorkerRequest对象,该对象中封装了HTTP请求的各种请求信息
请求到达Web服务器
创建AppDomain并创建HostingEnvironment对象
请求传递给应用程序池
启动整个HTTP请求处理过程,即HTTP Pipeline(http管线)
工作者进程工作于非托管环境(指Windows操作环境系统本身)之中,而.NET中的对象则工作于托管环境中(指CLR)之中,aspnet_isapi.dll起到了一个沟通两者的桥梁作用,将收到的HTTP请求(由非托管环境传来)转发给对应的.NET对象(处于托管环境中)处理。
HostingEnvironment提供对有关应用程序的信息(如:存储该应用程序的文件夹的名称)的访问。
应用程序池中的工作者进程负责装载aspnet_isapi.dll
0 条评论
下一页