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

输入域名->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。就连一个图片都是的。)。

ASP.NET请求过程-基本过程的更多相关文章

  1. Asp.net MVC进入请求管道的过程

    Asp.net MVC进入请求管道的过程 Asp.Net MVC 跟AspNet 入口解释 Asp.Net MVC请求处理过程 mvc 请求模型 mvc的原理 mvc模型 NewMVCPipleLin ...

  2. Asp.Net请求响应过程

    Asp.Net请求响应过程 在之前,我们写了自己的Asp.Net框架,对整个流程有了一个大概的认识.这次我们来看一下Asp.Net整个请求处理过程是怎么样的. 浏览器封装请求报文,发送请求到达服务器, ...

  3. ASP.NET请求过程-视图如何返回客户端

    本文主要讲控制器返回ActionResult后怎么变成html到客户端的. 控制器返回的各种类型 返回所有类型的基类ActionResult // // 摘要: // 表示操作方法的结果. publi ...

  4. asp.net core启动源码以及监听,到处理请求响应的过程

    摘要 asp.net core发布至今已经将近6年了,很多人对于这一块还是有些陌生,或者说没接触过:接触过的,对于asp.net core整个启动过程,监听过程,以及请求过程,响应过程也是一知半解,可 ...

  5. asp.net的HTTP请求处理过程

    1.asp.net的HTTP请求处理过程 说明: (1).客户端浏览器向服务器发出一个http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又 ...

  6. 01 ASP.NET Core 3 启动过程(一)

    ASP.NET Core 3 启动过程(一) 最近又忙于各种扯淡,今天来一个需求,明天又来一个需求,后天需求又变了,这可能是很多人遇到的情况.正在紧张的忙碌着,突然一个信息把所有计划打乱了," ...

  7. AJAX异步请求原理和过程

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),它不是一种新的编程语言,而是一种使用现有标准的新方法. AJAX 基于 JavaS ...

  8. 在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)

    在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程) 原文链接:http://www.360doc.com/content/14/1117/10/16948208_42571794 ...

  9. Spring MVC 原理探秘 - 一个请求的旅行过程

    1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...

  10. 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)

    Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能: 身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求. 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生成 ...

随机推荐

  1. linux系列(十):cat命令

    1.命令格式: cat [选项] [文件] 2.命令功能: cat主要有三大功能: (1).一次显示整个文件:cat filename (2).从键盘创建一个文件:cat > filename  ...

  2. NetworkX系列教程(10)-算法之四:拓扑排序与最大流问题

    小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...

  3. NetworkX系列教程(10)-算法之一:最短路径问题

    小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...

  4. SSD检测几个小细节

    目录 一. 抛砖引玉的Faster-RCNN 1.1 候选框的作用 1.2 下采样问题 二. SSD细节理解 2.1 六个LOSS 2.2 Anchor生成细节 2.3 Encode&& ...

  5. 扩展kmp学习笔记

    kmp没写过,扩展kmp没学过可还行. 两个愿望,一次满足 (该博客仅用于防止自己忘记,不保证初学者能看懂我在瞎bb什么qwq) 用途 对于串\(s1,s2\),可以求出\(s2\)与\(s1\)的每 ...

  6. a=”hello”和b=”世界”编码成bytes类型

    a="hello" c=a.encode(encoding='utf-8') a = b'hello' b="世界" b = b.encode(encoding ...

  7. java.lang.IllegalStateException: Method get not annotated with HTTP method type (ex. GET, POST);

    明明指定了请求方法类型还报错: 代码: @RequestMapping(value="/enterprise/detail",method = RequestMethod.POST ...

  8. Java 面向对象(十一)

    常用类之集合 集合:就是用来存放数据的一个容器. 数组和集合的区别 (1)数组能存基本数据类型和引用类型:集合当中只能存放引用数据类型,直接放基本数据类型,也会自动帮你装箱(把基本数据类型转成对象), ...

  9. CV_Learn

    CV学习进度条记录,也是SRTP的进度记录. 阶段一(2019.4-2019.5): 1.opencv简单操作学习.(实现了一些基础操作,从颜色通道到边缘轮廓,2019.4.22完成) 2.linux ...

  10. AWS 配置IPv6