设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> ASP.NET基础 >> ASP.NET构架与安全机制之Http请求处理
精品推荐
ASP.NET基础点击TOP10
·十天学会ASP.net之第一天
·学了一段时间的Asp.Net 2.0后,心里一些想法
·最佳ASP.NET编程习惯
·ASP.NET讲座(1)-ASP.NET简介
·ASP.NET十分有用的页面间传值方法
·十天学会ASP.net之第三天
·asp.net 操作xml
·十天学会ASP.net之第四天
·ASP.NET技巧:DataGrid传统分页方式
·ASP.NET讲座(3)-输入验证控件
网络编程点击TOP10
·利用Web Application Stress Tool(WAS)做性能测试(1)
·从零开始学ASP.NET(基础篇)
·ASP.NET 程序中常用的三十三种代码
·"SQL Server不存在或访问被拒绝"问题的解决
·用C#实现木马程序
·VS.net 2005 Beta 下载地址(Express Edition)
·C#聊天程序
·.NET 初 级 读 本
·我的.NET书架 (入门篇)
·无组件文件上传代码实例
精选专题

ASP.NET构架与安全机制之Http请求处理

作者: 来源:http://www.xgdown.com/ 时间:2007-9-8 9:12:16

ASP.NET构架与安全机制之Http请求处理(3)   当 Web.config文件的内容发生改变 或者 .aspx文件发生变动的时候,为了能够卸载运行在同一个进程中的应用程序(NOTE:卸载也是为了重新加载),Http请求被分放在相互隔离的应用程序域中。

  NOTE:可能你以前就听过应用程序域,但是不了解怎么回事,应用程序域就是 AppDomain。

  对于IIS来说,它依赖一个叫做 HTTP.SYS 的内置驱动程序来监听来自外部的 HTTP请求。在操作系统启动的时候,IIS首先在HTTP.SYS中注册自己的虚拟路径。

  NOTE:实际上相当于告诉HTTP.SYS哪些URL是可以访问的,哪些是不可以访问的。举个简单的例子:为什么你访问不存在的文件会出现 404 错误呢?就是在这一步确定的。

  如果请求的是一个可访问的URL,HTTP.SYS会将这个请求交给 IIS 工作者进程。

  NOTE:IIS6.0中叫做 w3wq.exe,IIS5.0中叫做 aspnet_wp.exe。

  每个工作者进程都有一个身份标识 以及 一系列的可选性能参数。

  NOTE:可选性能参数,是指诸如 回收机制的设置、超时时间设置 等等。

  接下来进行的事情就是上一章节讲述的 ISAPI 了。

  NOTE:这部分的内容相关性比较强,为了让大家好理解,我最后还是决定把 ISAPI 放到前面了,可能全系列完成的时候会再调整吧。

  除了映射文件与其对应的处理程序以外,ISAPI 还需要做一些其他的工作:

  1. 从HTTP.SYS中获取当前的Httq请求信息,并且将这些信息保存到 HttpWorkerRequest 类中。

  2. 在相互隔离的应用程序域AppDomain中加载HttpRuntime。

  3. 调用 HttpRuntime的ProcessRequest方法。

  接下来才是程序员通常编写的代码所完成的工作了,然后,IIS 接收返回的数据流,并重新返还给 HTTP.SYS,最后,HTTP.SYS 再将这些数据返回给客户端浏览器。

  OK,现在你看到张子阳的空间主页了。

  图3.Asp.Net 的宿主环境

  理解管道(Pipeline)

  在前面两章中,我们在一个相对比较低的层次上讨论了从发出Http请求到看到浏览器输出这转瞬即逝的十分之一秒内IIS和 Framework 所做的事情。但是我们忽略了一个细节:程序员编写的代码是如何在这一过程中衔接的,本章我们就来看看这个问题。

  当Http请求进入 Asp.Net Runtime以后,它的管道由托管模块(NOTE:Managed Modules)和处理器(NOTE:Handlers,这可不是CPU)组成,并且由管道来处理这个 Http请求。

  图4. 理解 Http 管道

  我们按编号来看一下这幅图中的数据是如何流动的。

  1. HttpRuntime将Http请求转交给 HttpApplication,HttpApplication代表着程序员创建的Web应用程序。HttpApplication创建针对此Http请求的 HttpContext对象,这些对象包含了关于此请求的诸多其他对象,主要是HttpRequest、HttpResponse、HttpSessionState等。这些对象在程序中可以通过Page类或者Context类进行访问。

  2. 接下来Http请求通过一些Module,这些Module可以做一些执行某个实际工作前的事情。

  3. 在这一步,执行实际的一些操作,通常也就是.aspx页面所完成的业务逻辑。

共4页 9 7 [1] [2] [3] [48 :>

ASP.NET构架与安全机制之Http请求处理 相关文章:
ASP.NET构架与安全机制之Http请求处理 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com