当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net页面的请求处理响应的过程描述

asp.net页面的请求处理响应的过程描述

2019年05月10日  | 移动技术网IT编程  | 我要评论

厉鬼制造者,侮辱尤娜小游戏,喜爱夜蒲2 影音

概述

本篇博客从iis到.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中进行操作。

总结

在用文字描述的过程发现,不描述不知道,一描述的时候,察觉到自己没有把整个过程仔细想通,然后,经过又一次的查阅资料,才写出了这些东西,希望对读者有意,同时也建议读者去查阅一些别的资料,去加深自己的理解。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网