一个http请求是这样的
2006-08-14 20:55
211 查看
这是一个图:表示了http请求的全过程。 (部分内容转自:http://www.mediadiy.com)
Http Request开始
|
HttpModule
|
HttpModule.BeginRequest()
|
HttpModule.AuthenticateRequest()
|
HttpModule.AuthorizeRequest()
|
HttpModule.ResolveRequestCache()
|
建立HttpHandler控制点
|
接着处理(HttpHandler已经建立,此后Session可用)
|
HttpModule.AcquireRequestState()
|
HttpModule.PreRequestHandlerExecute()
|
进入HttpHandler处理HttpRequest
|
HttpHandler.ProcessRequest()
|
返回到HttpModule接着处理(HttpHandler生命周期结束,Session失效)
|
HttpModule.PostRequestHandlerExecute()
|
HttpModule.ReleaseRequestState()
|
HttpModule.UpdateRequestCache()
|
HttpModule.EndRequest()
|
HttpModule.PreSendRequestHeaders()
|
HttpModule.PreSendRequestContent()
|
将处理后的数据返回客户端
|
整个Http Request处理结束
值得注意的是:
1. httpHandler和httpModule的处理过程交叉的,在httpmodule的处理过程中,也有一部分会进行httphandler处理。
2. 在AcquireRequestState事件触发时,httphandler对象已经建立起来了。
Http Request开始
|
HttpModule
|
HttpModule.BeginRequest()
|
HttpModule.AuthenticateRequest()
|
HttpModule.AuthorizeRequest()
|
HttpModule.ResolveRequestCache()
|
建立HttpHandler控制点
|
接着处理(HttpHandler已经建立,此后Session可用)
|
HttpModule.AcquireRequestState()
|
HttpModule.PreRequestHandlerExecute()
|
进入HttpHandler处理HttpRequest
|
HttpHandler.ProcessRequest()
|
返回到HttpModule接着处理(HttpHandler生命周期结束,Session失效)
|
HttpModule.PostRequestHandlerExecute()
|
HttpModule.ReleaseRequestState()
|
HttpModule.UpdateRequestCache()
|
HttpModule.EndRequest()
|
HttpModule.PreSendRequestHeaders()
|
HttpModule.PreSendRequestContent()
|
将处理后的数据返回客户端
|
整个Http Request处理结束
值得注意的是:
1. httpHandler和httpModule的处理过程交叉的,在httpmodule的处理过程中,也有一部分会进行httphandler处理。
2. 在AcquireRequestState事件触发时,httphandler对象已经建立起来了。
相关文章推荐
- 接口测试工具-Jmeter使用笔记(一:运行一个HTTP请求)
- 工作后好多师弟师妹问我spring aop,我就写了这样一个例子
- SpringMVC:处理一个http请求的完整过程
- 一个int数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它
- 网上看到了这样一个代码,请问怎么用啊?
- 这样注册一个控件,不错!
- 今天使用VC的时候碰见了一个这样的错误
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
- jmeter添加http请求、java请求,将返回的json数据提取出来并将结果追加到一个文件
- 一个http请求的响应报文即response,头部即header,可以任意增加属性吗,即自定义header?
- c# sqlite 数据库加密2010-05-29 10:55用了ADO.NET 2.0 SQLite Data Provider 这样可以直接利用它来创建一个加密的sqlite数据库。
- 一个节目 如果这样你要怎么做
- 大学生活应该这样度过之参加一个社团让自己溶入团队——
- 一个http请求的详细过程
- C#这样给一个对象赋
- 如果用seagull php框架开发一个类似zen cart,Oscommerce,magento这样的模块会什么样
- 就是在这样一个落英纷飞的四月
- 判断一个对象是否为null的代码:if(null != 对象名),这样写法的好处.
- 财务人员给员工发工资时经常遇到这样一个问题, 即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少。 例如,某职工工资为3436元,发放方案为: 100元34张,20元1张
- 我想和你一起去这样一个地方