zoukankan      html  css  js  c++  java
  • NET MVC运行机制

    【图解ASP.NET MVC运行机制理解-简易版】

     

    很多盆友咨询ASP.NET MVC的机制。网上也有好多。但是都是相当深奥。看的云里雾里的。我今天抽空,整理个简易版本。把处理流程走一遍。

    当然,这个只是处理请求的一部分环节。百度的面试题“客户端从浏览器发送一个请求,要经过哪些路程。。。”看似简单的问题,问的很有深度。

    我们不关注 从客户端HTTP->TCP->DNS->Server->Application->..................Client  这个完整的路线和插曲。我们就看看程序那一块。

    我这说的是ASP.NET MVC的Web程序,其它的请绕行哈.

    IIS 6 7 8的变化,自行找资料。不影响ASP.NET 的处理机制。

    开始步骤:

    1.服务器监听TCP请求处理,转发给IIS.........

    1.

    1-2

    2. IIS 接受到请求后,发送给Web程序。

    3.Web程序在启动的时候,触发一系列的事件。

     

    4.请找些资料 理解上面的管道模型 ,理解 HttpModule 、HttpHandler。Web程序启动的时候,事件注册顺序表,来自MSDN。

    5 .穿过注册的Module后,才进入对应的 Handler 进行请求处理。MVC在配置文件中,加载注册了路由模块。

    7.在程序启动的时候,触发注册模块的 Init 方法。

    8.此方法为 HttpApplication 的事件 PostResolveRequestCache 注册了处理程序 。在触发此事件的时候,进行了请求的路由检测。路由数据,RouteTable是当前应用程序域-AppDomain下的一个单例模式的事例。实现在应用程序级别的路由数据共享。

    9. 在应用程序启动的时候,使用单例的路由表 RouteTable对象,进行路由注册的注册配置。

    好了。路由数据已经准备初始化完毕,各项处理事件也注册完毕。当请求进入当前程序时候,进入管道模型,最终到达处理程序Handler,将生成的响应数据返回。

    ----------------------------------关于管道模型的设计-------------------------------------

    附加:

    参考文献:深入理解ASP.NET的内部运行机制 

    Asp.net管道模型(管线模型)之一发不可收拾

    https://msdn.microsoft.com/en-us/library/system.web.httpapplication(v=vs.80).aspx

  • 相关阅读:
    Thread.join
    Thread.yield
    线程的生命周期
    HashMap底层原理
    Web Services
    Struts2框架
    hibernate乐观锁实现原理
    Hibernate框架
    oracle exp 无法导出空表
    linux 远程复制文件或文件夹
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5319502.html
Copyright © 2011-2022 走看看