Web开发技术(http\asp.net运行机制、状态管理、生命周期)
第一关于 HTTP:
第一:HTTP 是什么?
http 一个属于应用层的面向对象的协议,浏览器和服务器双方共同遵循的规范,由请求和响应组成。
无连接,无状态,即请求发起之后服务器端立刻关闭连接并释放资源
http请求由三部分组成,分别是:请求行、消息报头、请求正文
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
备注:状态行信息如下:
1**:请求收到,继续处理 100——客户必须继续发出请求 101——客户要求服务器根据请求转换HTTP协议版本 2**:操作成功收到,分析、接受 201——提示知道新文件的URL 202——接受和处理、但处理未完成 203——返回信息不确定或不完整 204——请求收到,但返回信息为空 205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 206——服务器已经完成了部分用户的GET请求 3**:完成此请求必须进一步处理 300——请求的资源可在多处得到 301——删除请求数据 302——在其他地址发现了请求数据 303——建议客户访问其他URL或访问方式 304——客户端已经执行了GET,但文件未变化 305——请求的资源必须从服务器指定的地址得到 306——前一版本HTTP中使用的代码,现行版本中不再使用 307——申明请求的资源临时性删除 4**:请求包含一个错误语法或不能完成 400——错误请求,如语法错误 401——未授权 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导致登录失败 HTTP 401.3 - ACL 禁止访问资源 HTTP 401.4 - 未授权:授权被筛选器拒绝 HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败 402——保留有效ChargeTo头响应 403——禁止访问 HTTP 403.1 禁止访问:禁止可执行访问 HTTP 403.2 - 禁止访问:禁止读访问 HTTP 403.3 - 禁止访问:禁止写访问 HTTP 403.4 - 禁止访问:要求 SSL HTTP 403.5 - 禁止访问:要求 SSL 128 HTTP 403.6 - 禁止访问:IP 地址被拒绝 HTTP 403.7 - 禁止访问:要求客户证书 HTTP 403.8 - 禁止访问:禁止站点访问 HTTP 403.9 - 禁止访问:连接的用户过多 HTTP 403.10 - 禁止访问:配置无效 HTTP 403.11 - 禁止访问:密码更改 HTTP 403.12 - 禁止访问:映射器拒绝访问 HTTP 403.13 - 禁止访问:客户证书已被吊销 HTTP 403.15 - 禁止访问:客户访问许可过多 HTTP 403.16 - 禁止访问:客户证书不可信或者无效 HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效 404——没有发现文件、查询或URl 405——用户在Request-Line字段定义的方法不允许 406——根据用户发送的Accept拖,请求资源不可访问 407——类似401,用户必须首先在代理服务器上得到授权 408——客户端没有在用户指定的饿时间内完成请求 409——对当前资源状态,请求不能完成 410——服务器上不再有此资源且无进一步的参考地址 411——服务器拒绝用户定义的Content-Length属性请求 412——一个或多个请求头字段在当前请求中错误 413——请求的资源大于服务器允许的大小 414——请求的资源URL长于服务器允许的长度 415——请求资源不支持请求项目格式 416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段 417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。 5**:服务器执行一个完全有效请求失败 HTTP 500 - 内部服务器错误 HTTP 500.100 - 内部服务器错误 - ASP 错误 HTTP 500-11 服务器关闭 HTTP 500-12 应用程序重新启动 HTTP 500-13 - 服务器太忙 HTTP 500-14 - 应用程序无效 HTTP 500-15 - 不允许请求 global.asa Error 501 - 未实现 HTTP 502 - 网关错误
第二:工作流程
一次http操作被称作一个事务,包含四部分:
1.客户机c与服务器s建立连接
2.c发出请求URL(含报头、正文)
3..s 响应c(状态行、报头、正文)
4.信息返回c,断开连接
第二关于IIS和asp.net 运行机制
流程:http-(DNS)-->iis-->--ipurl-->appPool进程-->isapi->asp.net_isapi.dll----->CLR--->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule过滤容器-->HttpHandler Factory-->HttpHandler真正处理iis请求中心-->HttpHandler.ProcessRequest()——>mvcRouting->C->M->V
详细如图解:
iis:

.net

第三关于asp.net状态管理

第四关于asp.net生命周期
从页面加载 到页面卸载经历 9或者10个事件的执行。
了解这个,明白在不同阶段加上自己的代码,提供执行效率。
ps:2013 10 28
页面生命周期:
1、PreInit:设置master Page、设置主题、初始化控件
2、Init:此事件发生在所有的控件被初始化以后,读取或者初始化控件的属性。
3、InitComplete:初始化完成事件
4、PreLoad:加载页面的ViewState和所有控件,然后处理包含在Request中的Postback数据。
5、Load:此事件先递归调用控件的onload事件,直到所有的控件被加载完成。这个事件主要用来设置控件的属性的值。
6、LoadComplete:加载完成事件。
7、PreRender:在HTML被生成之前的最后一个事件,这个事件也是修改被返回的HTML的最后机会。
8、Render:主要把HTML返回到客户端。
9、UnLoad:清理页面,递归清理页面控件,例如关闭打开文件,关闭数据库连接等等。
参考:
http://www.cnblogs.com/wenthink/archive/2013/05/06/HTTP_IIS_ASPNET_Pipeline.html
http://www.360doc.com/content/10/0930/17/3668821_57590979.shtml
http://blog.csdn.net/gueter/article/details/1524447
http://www.cnblogs.com/SanMaoSpace/p/3157293.html

浙公网安备 33010602011771号