• ASP.NET运行原理概述


    1.ASP.NET运行原理概述

     

      如上图,当一个http请求发送过来并被IIS机收到之后,IIS首先通过你请求的页面类型为其加载相应的dll文件,然后在处理过程中将这条请求发送给能够处理这条请求的模块,而在ASP.NET中这个模块就叫做HttpHandler,为什么aspx这样的文件可以被服务器处理,那是因为在服务器端有默认的HttpHandler专门处理aspx文件,IIS再将这条请求发送给能够处理这条请求的模块之前,还需要经过一些HttpModule,这些都是系统默认的Modules,而且在这个http请求传到HttpHandler之前要经过不同的HttpModuls的处理,这就像我们如果要乘坐国际航班飞抵异国他乡的话,在你真正坐上飞机前,要经过购买机场建设费,办理登记手续核实身份,进行行李打包托运,进行安全检察,现在又要进行体温等检察一样,需要经一系列的严格的手续。这样做有什么好处,一是为一些必须的过程,二是为了安全性,三是为了提高效率,四是为了我们能够在更多的环节上进行控制,即增强了我们的控制能力。而上述的都是系统的,怎么能说是我们的对http请求控制能力能,那么我们是否可以建立自己的HttpModule和HttpHandler吗?答案是肯定的。但我们先不要急于做事,让我们再深入研究一下运行机制吧。

    2.ASP.NET运行机制


     

      那么上面这张图让我们能够更清楚地看到一个http请求是如何经过服务器的处理的,同时通过这张图我们也可以看出Request是掌管着所有客户端输入的。图中为我们展示了一个http请求有可能经过的四条路线。
    (1)当你第一次访问这个页面时,这个请求首先依次经过HttpModuls和HttpHandler的处理,而在HttpHandler的处理中,服务器会为你转到你真正要访问的页面,然后通过ASPX Engine来找到这个页面背后的类,并实例化为一个临时对象,再此过程中会触发一系列的事件,其中一部份的事件需要经过对象中的方法处理,之后服务器会将这个处理后的页面发移交给Response对象,然后由Response对象将这个页面(其实就是HTML页面)发送到客户端。这就是第一条路线;
    (2)而当你在这个页面上进行重新提交一些信息,并继续向服务器发送请求时,因为你的服务器之间的会话已经建立,对于你所在的那个临时对象在服务器中已经建立,所以不用再经过初始化页面的工作,故这第二条路线是按照 HttpModuls,HttpHandler,然后直接与临时对象交互,最后将页面发送回客户端;
    (3)第三条路线与第二条不同的是在处理请求时如果涉及到需要调用ASP Cache,既ASP 缓存的,而临时对象回将直接从ASP 缓存提取信息并返回;
    (4)这第四条路线就是当你刷新这个页面的时候,服务器接收到时发现这个请求先前已经处理过了,并将处理结果存储到由一个默认的HttpModule管理的输出缓存中了,那么我们就可以直接从这个缓存提取信息并返回,而无需再重新处理一遍了。

  • 相关阅读:
    JS中的宽高(基础知识很重要)
    JS基础知识总结
    Spring中的JdbcTemplate使用
    Spring中集合类型属性注入
    白盒交换机公司&产品列表
    虚拟化有哪几种架构
    全虚拟化与半虚拟化
    白牌交换机现状分析zz
    SDN控制器列表
    Arista公司
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/1600683.html
Copyright © 2020-2023  润新知