来源:http://book.51cto.com/art/201008/215820.htm
从图1.2中可以清楚地看到一个HTTP请求是如何经过服务器处理的,同时通过该图也可以看出Request掌管着所有客户端的输入。图中展示了一个HTTP请求有可能经过的4条路线。
第1条线路说明(1、2、3、4、5、6)
当用户第一次访问这个页面时,这个请求首先经过HttpModuls和HttpHandler(HTTP处理程序组件)的处理,而在 HttpHandler的处理中,服务器会为用户转到其真正要访问的页面,然后通过ASP Engine来找到这个页面背后的类,并实例化为一个临时对象,在此过程中会触发一系列的事件,其中一部分的事件需要经过对象中的方法处理,之后服务器会 将这个处理后的页面移交给Response对象,最后由Response对象将这个页面发送到客户端,这就是第1条路线。
第2条线路说明(7、8、9)
当用户在这个页面上重新提交一些信息,并继续向服务器发送请求时,因为用户与服务器之间的会话已经建立,同时对应的临时对象也在服务器中建立,所以 不用再经过初始化页面的工作,故第2条路线是按照HttpModuls、HttpHandler直接与临时对象交互然后返回的。
第3条线路说明(10、11、12、13)
第3条路线与第2条不同的是在处理请求时如果涉及需要调用ASP Cache(即ASP缓存),临时对象将直接从ASP缓存提取信息并返回。
第4条线路说明(14、15)
第4条路线就是当用户刷新这个页面时,服务器接收到HTTP请求,发现这个请求先前已经处理过,并将处理结果存储到由一个默认的HttpModule管理的输出缓存中,那么用户就可以直接从这个缓存提取信息并返回,而无须再重新处理一遍。