BS原理
浏览器通过地址或链接访问到一个服务器,也就是发送了一个请求,在服务器端,有一个负责监听浏览器连接请求的套接字,有连接请求时就会创建一个专门的处理套接字,将请求的内容进行处理,响应给浏览器;
Asp.net运行原理
通过浏览器向asp.net
网站的一个页面发送请求时,在服务器端首先是iis收到请求,iis
一看是asp.net
页面,直接就交给了asp.net isapi
,它的主要任务就是安排asp.net_wp.exe
处理请求,让它进行处理;
而asp.net_wp.exe
主要任务就是将请求交给一系列成为http管道的托管对象;而http管道的中有一部分叫HttpRuntime
,它根据内部的请求,最终交由ProcessRequestInternal
进行处理,就是PR
方法,这个是重点;
- 创建
HttpContext
实例; - 对第一次请求进行初始化(
EnsureFirstRequestInit
); - 创建
HttpWriter
实例; - 通过调用
HttpApplicationFactory.GetApplicationInstance
创建HttpApplication
实例。 - 调用
HttpApplication
实例的BeginProcessRequest
异步处理请求 - 在处理管道的第8个方法时,创建请求的页面类对象,并转成
IHttpHandler
接口对象; - 在11-12个事件的时候,执行页面类对象
PR
方法,在这里有很多的事情要处理; - 一直到
EndRequest
这个方法,管道结束,有服务器响应报文给浏览器;
生命周期
- 初始化对象,一个页面最初应被正确的初始化
- 导入
Viewstate
数据,在LoadViewState
这个事件中,所有的控件获得它们的第一个属性:Viewstate
属性,这个属性用于判断这个页面是否访问完毕; - 用
LoadPostData
处理Postback
数据,服务器对页面上的控件提交的表单数据进行处理; - 导入对象,在
Load
事件中,对象都实例化了(生命周期的最重要的一个过程); -
RaisePostBackChanged
事件,要在所有的控件都被更新了以及Load
事件完成后才进行的; - 处理客户端
PostBack
事件
以上内容都是老师教的,没有出处,也可以说是随堂笔记