首页 > ASP.NET > The NOTE of learning ASP.NET [2] ASP.NET运行库处理并返回响应的整个流程

The NOTE of learning ASP.NET [2] ASP.NET运行库处理并返回响应的整个流程

    这两天的工作又多起来了,咱不能耽误学习,小小的两年计划ING..觉得不管学哪个东西,关于WEB开发的JAVA,ASP,ASP.NET,PHP什么都好,先了解一下整个REQUEST到RESPONSE的生命周期很有用处,从下面这幅流程图就可以直观的看到了一个请求从IIS处理到ASP.NET运行库处理并返回响应的整个流程。
  
     我想接触更多的应该是ASP.NET运行库这部分流程,能看到,请求从IIS进入ASP.NET运行库后会通过IIS把处理后的请求对应到相应的Application中再进行下一步,这里可能要解释一下IIS处理了什么?HTTPApplication又是什么?在文章最下方我列出了一篇有关IIS处理Request的文章,看完那个文章后应该会理解的更好,根据我的理解大概解释一下:因为一个服务器上有可能会运行很多个Application(WEB应用),IIS会判断请求是针对哪个Application的,并把请求发送的相应的Application即图中看到的【HttpApplication】进行处理,HttpApplication是整个应用程序的入口点,当一个请求进入到一个应用后,并不是马上由相应的类进行处理并响应。可以看到在WEB响应前有两个模块,HttpModule和HttpHandler,HttpModule可以针对进来的请求做很多集中化的操作,比如Session,Cache,经过HttpModule处理后发现存在缓存或者Session的数据,这样的话就不再需要后续的逻辑处理即可返回响应了。而HttpHandler,可以设置根据请求的文件后缀(*.aspx,*.jpg,*.xml 等)来判断使用相应的类进行处理,如果我们为*.JPG格式的文件自定义一个Handler,就会在用户访问服务器上的图片文件前先执行我们自定义的Handler(Module和Handler实质上就是一个类,但是需要继承相应的接口),我们自定义的Handler可以执行相应的代码比如为图片添加水印,这样在用户访问图片文件时先由Handler为图片加上水印再输出。这时如果请求的是一个ASPX文件就会由ASPX的Handler中定义的类来进行处理并把生成的HTML进行输出。Module和Handler都是在应用的配置文件中进行配置的,这两天再好好研究一下.NET的配置文件。
     IReaper上可以下载到一个教程《面向开发人员之ASP.NET开发技术系列课程(3):JSP开发人员篇——ASP.NET架构深入挖掘》,里面详细讲解了整个流程,并有自定义Module和Handler的Demo。教程里介绍了一个使用Handler来为图片添加水印的方法。
 

 
PS.这里有篇文章,是关于IIS处理REQUEST的流程的,IIS处理流程并不是指我们前面说的从Client发起Request到Response的生命周期而恰恰说的是IIS处理Request到Page Life Cycle开始之前的那段过程。里面还讲到module和handler。文章地址:http://www.dotnetfunda.com/articles/article821-beginners-guide-how-iis-process-aspnet-request-.aspx ,很多E文,这里推荐两个翻译软件,一个是谷歌金山词霸,另外一个是http://www.engkoo.com/,上边可以安装一个边栏工具,平时使用金山的划词功能鼠标指到单词上按住Ctrl就会显示翻译挺方便,而Engkoo对一些计算机文章里的整句话翻译的不错,刚刚试着翻译了一些不太明白的句子,效果很好很强大啊!
Advertisements
分类:ASP.NET
  1. 还没有评论。
  1. No trackbacks yet.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: