http的请求和响应过程2
2013-03-03 10:53
302 查看
书接上文,本篇为鄙人阅读各位前辈的文章,根据自己的理解拙记一下。。。。。。。。。
上文中最大化的概括了一次http请求和响应,本节就来分段详细分析
自定义一个处理请求的Handler
所以,我们应该这样理解HttpHanlder:一个HttpHanlder用于响应一类特定的请求。
在请求的处理过程中,HttpApplication对象主要扮演着控制管线处理流程的作用,它负责推进整个处理流程, 除了在不同阶段引发不同的事件外(供HttpModule使用),HttpApplication对象还会根据当前请求寻找一个合适的IHttpApplicationFactory实例, 并最终得到一个IHttpHandler的实例用于处理请求。
当每次请求到来时要穿过httpModule到达httphandler,以便被响应。
而httpmodule就被配置在httpApplication中。
即流程为:
每当请求Web服务器上的某些信息时,该请求首先会到达Http.SYS,然后Http.SYS将其发送到相应的应用程序池,应用程序池传给工作进 程并加载ISAPI扩展,然后HttpRuntime对象会被创建,并通过HttpModule和HttpHandler处理请求。
对于详细的HttpHandler和HttpModule可以在 Fish Li 的博客中:
用Asp.net写自己的服务框架选择HttpHandler还是HttpModule?
学习参考:/article/4819749.html
http://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.80).aspx msdn解释
http://kb.cnblogs.com/page/144577/
http://kb.cnblogs.com/page/140611/
/article/5578559.html
上文中最大化的概括了一次http请求和响应,本节就来分段详细分析
1、在客户端浏览器中输入网址之后是如何找到网站所在服务器
客户端在浏览器中输入网址http://www.xxxxxx.edu.cn并提交之后,首先由DNS服务器找到网址所在服务器的IP,找到IP之后要判断IP是否在同一个子网络,如果在同一子网络,则直接向服务器发送数据包,如果不是同一子网络,将数据包发送到客户端所在子网络的网关,由网关找到服务器所在的网关,网关之间通过路由的方式发送,服务器所在网关接收到数据包之后再找到服务器所在位置,将数据包发送给服务器。自定义一个处理请求的Handler
//Web.Config文件中 <httpHandlers> <add path="*.aspx" verb="*" type="SearchInfo.Handle"/> <add path="*.ascx" verb="*" type="SearchInfo.Handle2"/> </httpHandlers> //SearchInfo是命名空间,Handle是自己定义处理请求的类。 //即:当一个请求Url后缀是 .aspx 时,就会交给自定的Handle类去处理 namespace SearchInfo { /// <summary> /// Handle 的摘要说明 /// </summary> public class Handle:IHttpHandler { public Handle() { // // TODO: 在此处添加构造函数逻辑 // } #region IHttpHandler 成员 public bool IsReusable { get { throw new Exception("The method or operation is not implemented."); } } public void ProcessRequest(HttpContext context) { HttpContext.Current.Response.Write("自定义Handler处理请求aspx"); } #endregion } }
所以,我们应该这样理解HttpHanlder:一个HttpHanlder用于响应一类特定的请求。
在请求的处理过程中,HttpApplication对象主要扮演着控制管线处理流程的作用,它负责推进整个处理流程, 除了在不同阶段引发不同的事件外(供HttpModule使用),HttpApplication对象还会根据当前请求寻找一个合适的IHttpApplicationFactory实例, 并最终得到一个IHttpHandler的实例用于处理请求。
当每次请求到来时要穿过httpModule到达httphandler,以便被响应。
而httpmodule就被配置在httpApplication中。
即流程为:
每当请求Web服务器上的某些信息时,该请求首先会到达Http.SYS,然后Http.SYS将其发送到相应的应用程序池,应用程序池传给工作进 程并加载ISAPI扩展,然后HttpRuntime对象会被创建,并通过HttpModule和HttpHandler处理请求。
对于详细的HttpHandler和HttpModule可以在 Fish Li 的博客中:
用Asp.net写自己的服务框架选择HttpHandler还是HttpModule?
学习参考:/article/4819749.html
http://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.80).aspx msdn解释
http://kb.cnblogs.com/page/144577/
http://kb.cnblogs.com/page/140611/
/article/5578559.html
相关文章推荐
- HTTP请求响应过程 与HTTPS区别
- Spring MVC 源码解析: HTTP 请求与响应过程
- HttpServlet请求响应过程(继承HttpServlet类的Servlet,Tomcat容器)
- HTTP从请求到响应的一个过程
- http的请求和响应过程3
- http的请求和响应过程-----管道
- HTTP协议请求响应过程和HTTPS工作原理
- HTTP 请求和响应过程
- 整个http请求到响应全过程
- Spring MVC 源码解析: HTTP 请求与响应过程
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- 通过HTTP请求响应过程了解HTTP协议
- 【转载】掌握 HTTP 缓存——从请求到响应过程的一切(上)
- 【转载】掌握 HTTP 缓存——从请求到响应过程的一切(下)
- 怎么查看真实项目的http 请求的请求报文和响应报文,即request和response?只有这样,才能完全彻底明白一个http 请求整个过程,发送和接收的是什么东西。
- Http 请求和响应全过程
- HTTP请求响应过程以及与HTTPS区别
- http的请求和响应过程1
- http的请求响应过程
- HTTP请求响应过程 与HTTPS区别