• ASP.NET请求过程-基本过程


    客户端发送请求到达服务器

    输入域名->DNS解析->指定IP 服务器(如果网页直接输入IP地址则直接到服务器)->请求到达服务器->HTTP.SYS接受HTTP请求->转发给ISAPI(是一个内置服务,他是IIS服务器的一个组件),检查当前请求的后缀。(后缀的配置在 处理程序映射  服务里面)->根据后缀(asp.net mvc默认管道给他添加一个asd后缀)  管道通信给aspnet_isapi(注意这个是给sap.net用的   其他的还有php_isapi   java_isapi等)->把网站的请求封装为httpworkrequest->然后又把httpworkerequest传给httpruntime(httpruntime是可以再程序中访问到的,他是asp.net程序的入口),然后httpruntime创建一个appdomain->然后到达httpapplicationfactory,他是http应用程序的一个工厂->他会创建出一个httpapplication(管道模型就是来自他)

    推荐文章

    http://blog.csdn.net/smartsmile2012/article/details/51597442

    http://blog.sina.com.cn/s/blog_44fa172f0102wiu4.html

    关键词解释

     

    上图(来自网络)中httpruntime和httpapplicatonfactory是浅颜色,因为他们是单例的。说明这两个对象在程序中只有一次创建。

    每次过来请求都会创建一个httpapplication,但是httpapplicationfactory内部维护了一个对象池,每次创建的httpapplication使用完之后不会马上被销毁。会放在池子里。

    关键字解释

    应用程序池:IIS中的概念,就是网站运行时的内存空间。

    应用程序域::为了保证代码的键壮性CLR希望不同服务功能的代码之间相互隔离,这种隔离可以通过创建多个进程来实现,但操作系统中创建进程是即耗时又耗费资源的一件事,所以在CLR中引入了AppDomain的概念,AppDomain主要是用来实现同一进程中的各AppDomain之间的隔离

    推荐https://www.cnblogs.com/asminfo/p/3999412.html

    HttpRuntime:ttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication。

    推荐https://www.cnblogs.com/kissdodog/archive/2013/05/07/3065208.html

    HTTPApplicationFactory:创建HttpApplication,对HttpApplication池管理。

    HttpApplication:就是一个用户请求。

    推荐https://www.cnblogs.com/liangxiaofeng/p/5625976.html

    推荐https://www.cnblogs.com/cs_net/archive/2010/11/22/1883706.html

    HttpContext:用户请求以及后台处理的信息都放在这个类型里面,里面包含了用户请求过程遇到的事件(分别可以通过Module和global.asax指定)

    推荐文章https://www.cnblogs.com/cs_net/archive/2010/11/22/1883706.html

    Module:对HttpApplication中事件 进行注册。是一个观察者模式(加配置文件)。

    Handler:所有的请求都回到Handler(无论是原来的webform 还是现在的mvc。就连一个图片都是的。)。

  • 相关阅读:
    Qt编译出错:“Cannot find file...... .pro."
    谈论如何有效地保护你的数据
    购书网
    VC非模态对话框创建和销毁
    在GUI程序中使用控制台的两种方法
    fatal error C1010: unexpected end of file while looking for precompiled header directive
    burp抓取手机包
    为firefox添加flash插件
    msfvenom生成linux后门
    kali下操作 Apache2
  • 原文地址:https://www.cnblogs.com/wudequn/p/7735007.html
Copyright © 2020-2023  润新知