黑马程序员技术交流社区

标题: asp.net底层。困惑很久了... [打印本页]

作者: 无__畏    时间: 2013-6-5 11:21
标题: asp.net底层。困惑很久了...
本帖最后由 无__畏 于 2013-6-5 15:53 编辑

老师说,请求进入iis后,iis可以处理得了html.js.css等静态文件,  ashx,aspx等动态处理不了的才进入.net运行池
为什么,自定义httpmodule以后,html、js、css也都进入了httpmodule管道里呢?

是哪里我理解错了么?




作者: 胡章诚    时间: 2013-6-5 11:44
当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”
你可以看看这篇文章:http://www.cnblogs.com/tangself/archive/2011/03/28/1998007.html
作者: 无__畏    时间: 2013-6-5 11:51
胡章诚 发表于 2013-6-5 11:44
当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说 ...

那么为何又说
       当IIS可以处理的静态文件就直接返回呢?  这个怎么理解
      
作者: 胡章诚    时间: 2013-6-5 12:40
好吧,那个说法有问题,应该这样说:
HTTP请求首先到达硬件服务器,通过端口到达IIS,IIS判断被请求的页面是否能被浏览器处理,如果可以,就直接返回
如果不能,不对该请求进行任何处理,直接进入asp.net程序的处理引擎(HttpModule是这个HTTP请求的“必经之路”),里面会对各种代码经行编译,得到一系列类似于静态页面的代码,将其返回给IIS,并且由IIS返回到客户端

说的有点抽象,是百度以后我自己理解得到的结果,望各位大神指正,或者完善
作者: 无__畏    时间: 2013-6-5 12:51
好吧,我这么想。  IIS判断被请求的页面是否能被浏览器处理,如果可以,就直接返回(它只是没有被.net运行池处理请求?但还是经过了HttpModule?)

通过端口到达IIS——IIS判断被请求的页面是否能被浏览器处理——如果可以,就直接返回    这个“直接返回”,还是经过了HttpModule”

作者: 胡章诚    时间: 2013-6-5 13:25
应该没有吧,我的意思是由IIS直接返回给客户端了,就没有经过那个端口了,这个通道应该是出于IIS与.net程序处理引擎的一个通道,我是这么想的,等下看能不能叫 吕叶老师 过来看看
作者: 无__畏    时间: 2013-6-5 13:54
嗯嗯,求老师指导!!!

通过端口到达IIS——IIS判断被请求的页面是否能被浏览器处理——如果可以,就直接返回   但是它为什么还进入Httpmodule中呢






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2