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

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

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个管道事件

posted @ 2012-09-26 21:36  51秒懂  阅读(1307)  评论(0编辑  收藏  举报