asp.net页面的请求处理响应的过程描述
概述
本篇博客从IIS到asp.net页面后台运行完,整个过程做一个简单的描述,如果有不对的地方,望指出。
IIS处理请求的过程
我们通过浏览器(Socket客户端)访问一个IIS服务器上的网页时,该请求到达IIS服务器上后,IIS的http.sys(分发器)组件就会根据相应的判断,将其交给对应的应用程序池(IIS上都有相应的注册信息),对应的应用程序池接收到请求后,会将其交给相应的工作进程进行处理,工作进程接到请求后,根据请求文件的后缀名,进行判断,如果此文件IIS可以处理,则直接处理,如果处理不了,就从其注册的插件配置文件中查找可以处理该请求的插件(asp.net_isapi.dll,也可以是php等等插件),并将其交给该插件(代理),然后,插件就把请求交给真正的处理程序。
浏览器
从程序的角度上说,浏览器就是一个Socket客户端,而IIS就是一个Socket服务器,从而来实现通信的功能。对于上述,我们可以使用Telnet(Socket客户端,win自带安装程序,需要自己安装)来进行验证,cmd中输入telnet 127.0.0.1 80,就可以连接到服务器,然后发出请求,就会得到相应的回应,
asp.net_isapi.dll插件
IIS的插件机制,使得IIS可以服务于任何语言的网站,只要其在IIS上注册相应的插件,那么,IIS就可以处理这类文件的请求,如,你想通过IIS进行php的服务,只要注册上php的插件就可以了,这个思想非常的厉害,使IIS的扩展性得到大大的提高,当然,这个插件并不是正真处理请求的程序,而是一个代理,通过这个代理(注册时写在IIS配置文件的内容)就可以让IIS知道自己可以处理这类文件,并且,通过这个代理,可以将这个请求交给正真的程序去处理,当然,返回的结果也是通过这个进行返回的。
我们可以在IIS服务器上,查看处理程序映射中查看其可以处理的文件。如果你是先安装的VS,后安装的IIS的话,此时,如果你想让你的IIS可以处理asp.net的相应文件,需要我们手动的将asp.net_isapi.dll注册到IIS中,操作:cmd—》目录定位到安装在本机的具体版本的.net framework目录(里面有aspnet_regiis.exe程序)—运行aspnet_regiis.exe -i
.net framework的HTTP管道机制
asp.net_ispai.dall接受到请求后,将其交给.net framework,然后就开始进行http的管道机制了
.net framework接到请求,实例化HttpRuntime对象,并调用ProcessRequest方法,然后就是通过HttpApplicationFacotry实例化Application对象,在实例化的过程中会继续实例化话httpContext、HttpRequest、HttpResponse、Module等等,然后最后实例化IHttpHandler接口的实例。
如果大家注意的话,我们的asp.net页面就是IHttpHandler接口的一个实现者,asp.net页面继承page类,page类继承IHttpHandler接口,这样我们的asp.net页面就可以访问上面实例化的对象了。另外,Golbal文件继承HttpApplication文件,这样,我们就可以通过书写Golbal中的方法,去往Http管道中的事件进行注册了。
asp.net页面的生命周期
实例化IHttpHandler接口实例,实际就是实例化asp.net的页面,而在实例化asp.net页面的过程,主要经过这几个事件,初始化,加载,控件事件,保存state,渲染,卸载。这里我们需要知道页面上控件事件的执行是在,预渲染前,在load之后,当然,第一次的时候,是不会有控件事件触发的,在初始化阶段,完成控件树的创建和相应属性的赋值等,所以,在这里阶段时不要对控件的属性值进行操作,因为没有值,加载过程中,我们可以对控件进行相应的操作,如果想在load之前的话,就在preload中进行操作。
总结
在用文字描述的过程发现,不描述不知道,一描述的时候,察觉到自己没有把整个过程仔细想通,然后,经过又一次的查阅资料,才写出了这些东西,希望对读者有意,同时也建议读者去查阅一些别的资料,去加深自己的理解。
asp.net页面的请求处理响应的过程描述的更多相关文章
- ASP.NET编程模型之ASP.NET页面生命周期图解
ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧: ASP.NET 页运行时,此 ...
- 关于ASP.NET页面事件的知识点
ASP是动态服务器页面(ActiveServerPage)的英文缩写,是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单.方便的编程工具.那么关于ASP.NET ...
- asp.net的HTTP请求处理过程
1.asp.net的HTTP请求处理过程 说明: (1).客户端浏览器向服务器发出一个http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又 ...
- Asp.net页面生命周期详解任我行(3)-服务器处理请求详细过程
前言 百度了一下才知道,传智的邹老师桃李满天下呀,我也是邹老师的粉丝,最开始学习页面生命周期的时候也是看了邹老师的视频. 本人是参考了以下前辈的作品,本文中也参合了本人心得,绝非有意盗版,旨在传播,最 ...
- 【转载】ASP.NET页面运行机制以及请求处理流程
本文转至 ASP.NET页面运行机制以及请求处理流程 IIS处理页面的运行机制 IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件,之所以能处理ASPX这样扩展名的页 ...
- asp.net页面生命周期
Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ...
- C# 问题解决思路--《数组bytes未定义》,ASP.NET页面加载顺序
好久没写博客了,废话不多说,直接说问题. 问题发生情况,首先这个是老项目,然后我是第一次修改.当我解决了各种引用,数据库配置之后等类似的问题,我启动的项目的时候,无任何问题,但是当我点击页面的按钮的时 ...
- Asp.Net页面生命周期--转发(学海无涯)
一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ...
- .NET MVC页面生命周期及传统ASP.NET页面周期
目前我主要使用.Net MVC框架进行网页创建,数据库是MSSQL Server.所以,我就用.NET MVC框架的web页面周期来说明页面的生命周期,但是我觉着其他MVC框架也是大同小异的. 本文主 ...
随机推荐
- import static与import的区别
import static(静态导入)是JDK1.5中的新特性,一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com..... ...
- slf4j+log4j配置
下载三个包: 三个包分别是:log4j的API包,slf4j的API包,slf4j对log4j的适配包. 选择使用slf4j一个重要的原因是支持占位符{},不用频繁操作字符串对象. 实现代码如下: i ...
- .NET Web开发总结(三)
第五章 ASP.NET 页面语法 本章详细讲解.NET页面的语法结构 一般情况下 一个ASP.NET页面要包括页面编译指令 HTML页面框架及Web窗体 服务器端控件 服务器端代码 ...
- Regarding the %EDIT table
%EDITTABLE is field in the work record DERIVED. This field is generally used a prompt table for vari ...
- Environment类,获取程序所在机器信息
一.属性 CommandLine 获取该进程的命令行.CurrentDirectory 获取或设置当前工作目录的完全限定路径.ExitCode 获取或设置进程的退出代码.HasShutdownSta ...
- JavaScript的闭包是什么意思以及作用和应用场景
JavaScript闭包 1.什么是闭包 百度百科对于闭包的解释是:闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中 ...
- 配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考)
本文拟定是在一个局域网内(比如一个Hadoop集群)设定一台NTP服务器作为整个网络的标准时间参考,使用网络(集群)内的所有机器保持时间一致!以下是详细的操作步骤: 1. 修改选定的服务器的本地时间 ...
- 修改 WordPress 文件上传目录
WordPress 默认的上传目录位于 wp-content/uploads ,并且根据设置还可以按照年月归档.但是如果要上传一个头像,或者幻灯片的话,也跟附件混在一起总是不太好吧?幸好 WordPr ...
- 《安全参考》HACKCTO-201312-12
小编的话 “忽如一夜春风来,千树万树梨花开.” 小伙伴们,不要只为了“千树万树的梨花”而惊喜,陶醉! 与此同时,您最爱的整合型信息安全技术期刊<安全参考>第12期也如约而至啦! 这一期&l ...
- 靶形数独 (codevs 1174)题解
[问题描述] 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向Z 博士请教,Z 博士拿出了他最近发明的“ ...