SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

看了两个前辈的文章《ASP.NET架构分析》、《浅谈ASP.NET的内部机制(一)》,自己做的一些总结,不过也不知道是否完全正确,有错误的地方希望牛人可以指出!

执行顺序为:

1、客户端请求web页(如:aspx页)-->2、IIS服务器中的http.sys(验证请求的url,阻止了不合法的url请求,减轻了服务器的压力)-->3、IIS是只能识别.html文件的,当IIS遇到非.html时(如aspx),IIS将其交给ISAPI筛选器来处理--> 4、ASP.NET服务在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面(如:*.aspx,*.php等),扩展启动后,就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中(如*.aspx由aspnet_isapi.dll来处理)-->5、由aspnet_isapi.dll进入ASP.NET运行时

说明:第4步因为.net与系统结合所以在ISAPI筛选器没有体现。比如要支持php页面,应先在ISAPI筛选器添加执行文件,然后再到ISAPI扩展里面添加扩展名.php。

 

以上让我们了解了客户端是如何和服务器端进行交互的,下面我们可以来看看服务器端到底是怎样来处理客户端的请求(也就是接第5步后的处理过程):

未完待续......

 

其它说明:

aspnet_isapi.dll执行aspx页面,他可以做两件事,先执行ISAPI过滤器的一些操作,如验证权限,用户名密码等,再执行aspx页面。

1、ISAPI过滤器可以在web.config进行配置,对应节点为<httpModules></httpModules>

2、ISAPI扩展可以在web.config进行配置,对应节点为<httpHandlers></httpHandlers>