asp.net请求响应模型原理随记回顾:

根据一崇敬的讲师总结:(会存在些错误,大家可以做参考)

1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文。并通过主socket创建新的socket对象传输请求报文。(请求服务器端的端口为80端口)

2.当socket到达80端口后,这时监听80端口的socket会创建新的socket代理来,开辟新的socket端口,进行通信,请求报文信息会被操作系统的内核模式kernalModel的http.sys(驱动级别)进行解析并负责将请求分发具体的处理程序。(http.sys其实可以看做是插件模型,即管道模型,通过系统注册表向这个管道注册处理程序,这样请求信息就会被注册处理程序截获过滤执行)。

3.http.sys解析出请求时80端口并根据注册表找到对应处理程序,之后交给了寄宿在svchost.exe中的w3svc服务,它会判断请求文件的后缀,如果是静态页,js等静态资源,便直接在iis内部处理再通过通信端口返回响应信息。如果是.aspx,就会找到相应的处理程序(可以看出iis也是插件模型)即aspnet_isapi.dll(非托管用c++写的)。

4. aspnet_isapi.dll会通过ecb操作系统句柄(标志系统一些资源)这样托管环境就能访问报文信息(可以看出aspnet_isapi.dll是托管和非托管环境的一个桥梁);之后传给isapiruntime,通过ecb指针创建一个httpworkrequest对象(对http报文做最初的封装处理)之后再交给httpruntime对象,它会对httpworkrequest对象做进一步封装,通过创建httpcontext,将httpworkrequest封装到httpcontext的httprequest对象中(返回的相应报文会封装到httpcontext的httpresponse中)。

5.之后HttpApplicationFactory创建一个HttpApplication管道(这里使用了对象池,因为HttpApplication通过反射创建好资源,如果对象池中有的话,直接取出来,和线程池,应用程序池,一般处理程序池都是一样的,httpapplication管道当然也是插件模型了,通过httpModule注册事件),这时httpcontext会流经这个管道,注册的处理程序便可以截获过滤httpcontext了。(httpallication共有23个事件,19个事件可以让开发者使用,-httpapplication的第7个事件获得缓存,8事件:创建最终处理当前请求的handler实例;在11和12个事件之间会调用执行一般处理程序(handler的pr方法处理请求);)

asp.net请求响应模型原理随记回顾的更多相关文章

  1. asp.net mvc请求响应模型原理回顾

    根据讲师所讲总结了一下(可能存在些描述错误) -------------mvc进入asp.net管道原理: (在执行httpapplication管道之前mvc和asp.net是相同的,不同之处在于管 ...

  2. Asp.Net请求响应过程

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

  3. HTTP协议请求响应模型

    HTTP协议请求响应模型:以”用户登录“这个场景来描述 第一步:客户端发起请求到API接口层,操作:用户在客户端填写用户名和密码,点击登录,发送请求. 第二步:api接收到客户端发起的用户请求,api ...

  4. Ajax的基本请求/响应模型

    一.Ajax工作核心 Ajax的核心是JavaScript对象XMLHttpRequest(简称XHR).它是一种支持异步请求的技术.可以通过使用XHR对象向服务器提出请求并处理响应,而不阻塞用户. ...

  5. (转)Asp.Net底层原理(三、Asp.Net请求响应过程)

    原文地址:http://www.cnblogs.com/liuhf939/archive/2013/09/16/3324753.html 在之前,我们写了自己的Asp.Net框架,对整个流程有了一个大 ...

  6. Http请求响应模型

    主要用到以下四个部分: Client   API   DB   API 场景:登录 1.Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2.API接受用户发起的 ...

  7. HTTP协议请求响应过程和HTTPS工作原理

    HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...

  8. 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制

    微软的程序设计和相应的IDE做的很棒,让人很快就能有生产力..NET上手容易,生产力很高,但对于一个不是那么勤奋的人,他很可能就不再进步了,没有想深入下去的动力,他不用去理解整个框架和环境是怎么执行的 ...

  9. 初探Asp.net请求机制原理 1

    web原理 请求---响应 而一个 简单的请求 响应中包含太多知识,只有把 请求响应原理搞懂才能在web的世界里好好翱翔(注:自已的整理的知识参考博友们东西或自已所想,没有盗版权的意思,在此说明就不引 ...

随机推荐

  1. 浙江大学PAT考试1069~1072(2013-11-2)

    11 题目地址:http://pat.zju.edu.cn/contests/pat-a-practise 1069: 由下降序和上升序两个四位数不断相减,然后得到新数据,始终会到达一个数字终止. 递 ...

  2. Jquery基础教程第二版学习记录

    本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做 ...

  3. Linux centos 主机名颜色设置 和 别名设置

    方便和乐趣写今天.至于为什么主机名颜色设置 和 别名设置放在一起写.这是因为他们的设置是在一个文件中..bashrc. .bashrc放在cd /root 这个文件夹下! 这个文件主要保存个人的一些个 ...

  4. LevelDB初体验

    近期工作须要找一个能使用磁盘存储数据,对写要求比較苛刻,须要每秒达100000TPS,读的时候须要能10000TPS左右,不能占用太多内存.单节点满足这个要求的常见有Redis.Memcached等, ...

  5. 大数据系列修炼-Scala课程11

    接着昨天的list,也是学习集合的相关知识 ListBuffer.ArrayBuffer.Queue.stack相关操作 1.ListBuffer.ArrayBuffer代码实现:ListBuffer ...

  6. URAL 1404. Easy to Hack! (模拟)

    space=1&num=1404">1404. Easy to Hack! Time limit: 1.0 second Memory limit: 64 MB When Vi ...

  7. UML九种图汇总

    UML视频读,该文件开始起草.我不知道如何下手啊!我想先UML九图和总结的关系,然后开始用它的文件. 首先在地图上. UML的九种图各自是:用例图.类图.对象图.状态图.活动图.协作图.序列图.组件图 ...

  8. WebApi统一输出接口

    public class WebApi { /// <summary> /// 成功后的输出 /// </summary> /// <param name="d ...

  9. 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法

    原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...

  10. 编程算法 - 切割排序 代码(C)

    切割排序 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 排序切割, 把一个数组分为, 大于k\小于k\等于k的三个部分. 能够使用高速排序的Parti ...