asp.net请求响应模型原理随记回顾
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请求响应模型原理随记回顾的更多相关文章
- asp.net mvc请求响应模型原理回顾
根据讲师所讲总结了一下(可能存在些描述错误) -------------mvc进入asp.net管道原理: (在执行httpapplication管道之前mvc和asp.net是相同的,不同之处在于管 ...
- Asp.Net请求响应过程
Asp.Net请求响应过程 在之前,我们写了自己的Asp.Net框架,对整个流程有了一个大概的认识.这次我们来看一下Asp.Net整个请求处理过程是怎么样的. 浏览器封装请求报文,发送请求到达服务器, ...
- HTTP协议请求响应模型
HTTP协议请求响应模型:以”用户登录“这个场景来描述 第一步:客户端发起请求到API接口层,操作:用户在客户端填写用户名和密码,点击登录,发送请求. 第二步:api接收到客户端发起的用户请求,api ...
- Ajax的基本请求/响应模型
一.Ajax工作核心 Ajax的核心是JavaScript对象XMLHttpRequest(简称XHR).它是一种支持异步请求的技术.可以通过使用XHR对象向服务器提出请求并处理响应,而不阻塞用户. ...
- (转)Asp.Net底层原理(三、Asp.Net请求响应过程)
原文地址:http://www.cnblogs.com/liuhf939/archive/2013/09/16/3324753.html 在之前,我们写了自己的Asp.Net框架,对整个流程有了一个大 ...
- Http请求响应模型
主要用到以下四个部分: Client API DB API 场景:登录 1.Client发起请求到API接口层 1.1用户在客户端输入登录信息,点击登录,发送请求 2.API接受用户发起的 ...
- HTTP协议请求响应过程和HTTPS工作原理
HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...
- 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制
微软的程序设计和相应的IDE做的很棒,让人很快就能有生产力..NET上手容易,生产力很高,但对于一个不是那么勤奋的人,他很可能就不再进步了,没有想深入下去的动力,他不用去理解整个框架和环境是怎么执行的 ...
- 初探Asp.net请求机制原理 1
web原理 请求---响应 而一个 简单的请求 响应中包含太多知识,只有把 请求响应原理搞懂才能在web的世界里好好翱翔(注:自已的整理的知识参考博友们东西或自已所想,没有盗版权的意思,在此说明就不引 ...
随机推荐
- SQL Server 备份和还原全攻略
原文:SQL Server 备份和还原全攻略 一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份, ...
- awk学习总结(两) How awk works and awk CMD in a file
测试文件names Tom Savage 100 Molly Lee 200 John Doe 300 $0 代表file的整行; $1,第一列;$2,第二列...... $ awk '/Tom/{p ...
- Saving HDU (贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2111 好久不刷题,拿到水题切了切,,,,,题意刚开始都没有理解,,,,真是弱了,,,, 简单贪心,,, ...
- EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类
大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...
- jdk1.7 变更
个人实遇: 1.6与1.7 :SimpleDateFormat,1.6要求yyyy必须小写,1.7兼容大小写: jdk 8 新特性: 官方pdf文档(英文版)私人下载地址:http://pan.bai ...
- PostgreSQL 9.3 Streaming Replication 状态监控
postgresql是使用Streaming Replication来实现热备份的,热备份的作用如下: 灾难恢复 高可用性 负载均衡,当你使用Streaming Replication来实现热备份(h ...
- 从头开始学JavaScript (六)——语句
原文:从头开始学JavaScript (六)--语句 一.条件分支语句:if 基本格式: if (<表达式1>){ <语句组1>}else if (<表达式2> ...
- tiny210——uboot移植Makefile文章分析
这东西已经写,我们没有时间发布,如今,终于有时间稍微长送记录汇总uboot学习过程.具体了.以后忘了也能够再温习回来嘛有些特殊字符显示得乱掉了 Makefile追踪技巧: 技巧1:能够先从编译目标開始 ...
- oracle处理节点之间的父子关系
通常当与树的结构之间的关系处理,这是一个很复杂的事情,我们可以通过程序代码去逐层遍历父或子节点,这样做的缺点是很明显,效率不高,操作复杂性是比较大的.而当我们使用Oracle当数据库,我们可以有一个简 ...
- net.sf.json 迄今 时刻 格式 办法
创作工具类 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import ...