现在的位置: 首页 > 综合 > 正文

逐步解析ASP.NET请求响应流程图(B/S IIS)

2013年10月01日 ⁄ 综合 ⁄ 共 1128字 ⁄ 字号 评论关闭

为了记忆深刻:我用文字再叙述一遍

1.浏览器将请求的信息封装成Http协议报文,发送给服务器。

2.IIS负责监听80端口,接受浏览器的报文,如果是静态文件,从服务器找到静态文件转换成 byte[] 然后通过代理socket响应给 浏览器。

3.如果是动态文件 IIS处理不了 交给aspnet_isapi.dll扩展,扩展将请求交给 .NetFramework的CLR中处理(即asp.net生命周期)。

第二步

IIS的核心进程inetinfo.exe交给aspnet_isapi.dll 

扩展启动CLR(workProcess进程是,aspnet_wp.exe(xpIIS5),w3wp.exe(IIS6,IIS7))的AppDomain交给ISAPIRuntime 交给一般处理程序的ProcessRequest方法处理完成后返回给aspnet_isapi.dll  最终响应给浏览器

第三步

ISAPIRuntime.ProcessRequest 通过ecb句柄创建HttpWorkRequest(封装的是报文头) 调用HttpRuntim.PR()根据ecb句柄创建HttpContext

从HttpApplicationFactory拿到HttpApplication 然后走23个管道事件

为了记忆深刻:我用文字再叙述一遍

1.浏览器将请求的信息封装成Http协议报文,发送给服务器。

2.IIS负责监听80端口,接受浏览器的报文,如果是静态文件,从服务器找到静态文件转换成 byte[] 然后通过代理socket响应给 浏览器。

3.如果是动态文件 IIS处理不了 交给aspnet_isapi.dll扩展,扩展将请求交给 .NetFramework的CLR中处理(即asp.net生命周期)。

第二步

IIS的核心进程inetinfo.exe交给aspnet_isapi.dll 

扩展启动CLR(workProcess进程是,aspnet_wp.exe(xpIIS5),w3wp.exe(IIS6,IIS7))的AppDomain交给ISAPIRuntime 交给一般处理程序的ProcessRequest方法处理完成后返回给aspnet_isapi.dll  最终响应给浏览器

第三步

ISAPIRuntime.ProcessRequest 通过ecb句柄创建HttpWorkRequest(封装的是报文头) 调用HttpRuntim.PR()根据ecb句柄创建HttpContext

从HttpApplicationFactory拿到HttpApplication 然后走23个管道事件

http://www.cnblogs.com/cheshui/archive/2012/09/26/2704730.html

抱歉!评论已关闭.