首页 > 编程 > .NET > 正文

ASP.NET Framework深度历险(1)

2024-07-10 13:04:37
字体:
来源:转载
供稿:网友

asp.net  framework深度历险(1)

author:uestc95  
e-mail:[email protected]
    
记得前一段时间有本不错的书叫delphi深度历险,写得不错,我也就暂且借用了,:)
在这里我不打算简单介绍asp.net的入门知识了,asp.net除了名字和古老的asp有些相同外,已经是完完全全的改变了,虽然你仍能在asp.net中发现你熟悉的session,application等等,但是不要尝试将他们同远古的asp时代的session等等画上等号。
我们来慢慢的深入到asp.net framework的核心内部,看看她是如何实现的,看看她是如何能承担起下一代技术平台这个美誉的。
这篇东东不曾想过要完成多少章节,也没有这个必要,权当日记的形式存在,或许很短,或许很长,我会尽我的所能来将asp.net framework展现在诸位面前。
如果你对asp.net framework没有任何了解,你同样可以成为asp.net coding高手,如果是这样,你就不必继续看下去了。

chapter one --  process a http request.

我们瞧一瞧asp.net framework的运行机制和架构。
在开始之前,我们先跟随考古学家参观一下古老的asp运行机制:
当你请求一个*.asp文件的时候,这个http request首先被inetinfo.exe进程所截获,这个inetinfo.exe进程就是www服务进程,然后她会将这个请求转交给asp.dll进程,asp.dll进程就会解释执行这个asp叶面,然后将解释后的数据流返回给客户端浏览器。

转过头来我们看看如今的asp.net framework是如何处理一个http request.
当你请求一个*.aspx文件的时候,同样的这个http request会被inetinfo.exe进程截获,她判断文件的后缀之后,将这个请求转交给aspnet_isapi.dll,aspnet_isapi.dll会通过一个被称为http pipeline的管道,将请求发送给aspnet_wp.exe进程,当这个http request进入aspnet_wp.exe进程之后,会通过httpruntime来处理这个请求,处理完毕将结果返回客户端。

ok,好像并没有太大的改进嘛,不要着急,在asp.net framework中我们甚至能够了解到httpruntime的细节。好,继续深入下去:
当http request进入httpruntime之后,会继续进入到一个被称之为httpapplication factory的一个container中,她会给出一个httpapplication来处理传递进来的请求,这个请求会依次进入如下几个container:httpmodule->httphandler factory->httphandler。
当系统内部的httphandler的processresquest方法处理完毕之后,整个http request就完成了,客户端也就得到相应的东东了。

整理一下asp.net framework处理一个http request的流程:

httprequest-->inetinfo.exe-->aspnet_isapi.dll-->http pipeline-->aspnet_wp.exe-->httpruntime-->httpapplication factory-->httpapplication-->httpmodule-->httphandler factory-->httphandler-->httphandler.processrequest()

或许会问,我知道这个处理流程有什么用处呢?当然有用了,比如如果你想要中途截获一个http request并且做些自己的处理,该如何做呢?这是下一次我们探讨的东东了,下次我们详细讨论处理的细节问题。
see you later

(待续,欢迎探讨:[email protected]


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表