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. 基于NSIS脚本开发的安装程序制作软件:易量安装

    原文 基于NSIS脚本开发的安装程序制作软件:易量安装 前几天“萝卜”给我推荐了一款安装程序制作工具——易量安装. 易量安装是一款安装程序制作软件,基于著名的NSIS(Nullsoft Scripta ...

  2. CodeForces 277A Learning Languages (并检查集合)

    A. Learning Languages time limit per test:2 seconds memory limit per test:256 megabytes The "Be ...

  3. C#从SQL server数据库中读取l图片和存入图片

    原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...

  4. Building a RESTful Web Service(转)

    Building a RESTful Web Service This guide walks you through the process of creating a "hello wo ...

  5. do...while(0)神奇

    1. do...while(0)消除goto语句. 通常,假设在一个函数中開始要分配一些资源.然后在中途运行过程中假设遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样: version ...

  6. NYoj The partial sum problem(简单深搜+优化)

    题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=927 代码: #include <stdio.h> #include & ...

  7. PeopleRank从社交网络中发现个体价值

    阅读导读: 1.什么是PeopleRank? 2.PeopleRank和PageRank有什么差别? 3.PR分析微博数据时,怎样对微博单个账号评分? 4.R语言怎样递归计算矩阵特征值? 5.怎样计算 ...

  8. php_PHP与Mysql的连接

    展示效果: 繁写: <?php    echo "This is a test</br>";     echo "asdfasdfadsf"; ...

  9. [转载]CSS元素的定位position

    CSS元素的定位position 属性position   值 描述 absolute                             生成绝对定位的元素,相对于 static 定位以外的第一 ...

  10. MyEclipse优化全攻略

    (0) 吐槽 Eclipse仅仅是个半成品有木有?什么都须要自己安装插件,新手非常难用有木有? 安装上插件以后了版本号兼容和各种问题烦死人有木有? 都怪碎片和版本号乱公布有木有? IntelliJ I ...