进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> .Net -> 文章内容  
ASP.NET构架与安全机制之Http请求处理

理解宿主环境(Hosting)

  从本质上讲,Asp.Net 主要是由一系列的类组成,这些类的主要目的就是将Http请求转变为对客户端的响应。HttpRuntime类是Asp.Net的一个主要入口,它有一个称作 ProcessRequest 的方法,这个方法以一个 HttpWorkerRequest 类作为参数。HttpRuntime 类几乎包含着关于单个 Http请求的所有信息:所请求的文件、服务器端变量、QueryString、Http 头信息 等等。Asp.Net 使用这些信息来加载、运行正确的文件,并且将这个请求转换到输出流中,一般来说,也就是HTML页面。www.goodsgy.com

  NOTE:二般来说,也可以是张图片。www.goodsgy.com

  当 Web.config文件的内容发生改变 或者 .aspx文件发生变动的时候,为了能够卸载运行在同一个进程中的应用程序(NOTE:卸载也是为了重新加载),Http请求被分放在相互隔离的应用程序域中。www.goodsgy.com

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

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

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

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

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

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

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

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

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

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

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

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

  3. 调用 HttpRuntime的ProcessRequest方法。www.goodsgy.com

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

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

  图3.Asp.Net 的宿主环境www.goodsgy.com

  www.goodsgy.com

  理解管道(Pipeline)www.goodsgy.com

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

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

  图4. 理解 Http 管道www.goodsgy.com

  www.goodsgy.com

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

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

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

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

  4. Http请求再一次回到Module,此时Module可以做一些某个工作已经完成了之后的事情。www.goodsgy.com

  NOTE:注意我用红色标识的字,然后回想一下:Asp.Net 中是不是有众多的 Inserting 、Inserted 之类成对的事件?其实,这里讲述的就是为什么Asp.Net可以将一个Insert操作分成前后两部分,然后再分别进行事件拦截的幕后原理。www.goodsgy.com

  总结www.goodsgy.com

  本文是《Asp.Net构架与安全机制》系列文章的第一篇。www.goodsgy.com

  我首先概要介绍了这系列文章将要为大家讲述的主题。然后,我提出了部分程序员存在的一个问题:在一个比较高的层次上学习和使用Asp.Net。www.goodsgy.com

  随后,我以一个访问我个人空间首页的例子,引出了本文主要讲述的三个内容:www.goodsgy.com

  1. Http请求刚刚到达时IIS时,IIS 所做的工作。

  2. Http请求的宿主环境。www.goodsgy.com

  3. Http管道。www.goodsgy.com

  希望这篇文章能给你带来帮助。www.goodsgy.com

上一页  [1] [2] 

在百度中搜索:ASP.NET构架与安全机制之Http请求处理
在Google中搜索:ASP.NET构架与安全机制之Http请求处理
在Yahoo中搜索:ASP.NET构架与安全机制之Http请求处理

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]

 相关文章    最新文章
· ASP.Net实现将Word转换PDF格式
· [图文] Flash制作鼠标感应Tween类动画效果..
· 初学ASP编程易犯的一个错误要注意
· ASP实现SQL语句日期格式的加减运算
· [组图] Flash实例:可爱的小青蛙闹钟
· ASP程序中输出Excel文件实例一则
· [组图] Flash也能制作特色小图标
· IIS下ASP程序运行故障的解决
· [组图] Flash实例教程:卡通MM眨眼睛动画
· PPT文稿的位置移动后,Flash动画为什么不..
 
· ASP.Net实现将Word转换PDF格式
· C#中的数字格式化、格式日期格式化
· 在ASP.NET中跨页面实现多选
· Asp.net编程中的数组基础实例学习
· [组图] ASP.NET构架与安全机制之Http请求处..
· ASP.NET如何保留两位小数点
· Visual C#多线程参数传递浅析
· 在Visual C#中定义和使用自己的特性
· [图文] 利用C#远程存取Access数据库
· 用VB.NET 2005编写定时关机程序

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)