HttpModel 和 HttpHandle
页面的请求过程:
HttpRequest->
inetinfo.exe->
aspnet_isapi.dll->
Http pipeline(命名管道)->
aspnet_wp.exe->
HttpRuntime->
HttpApplication Factory->HttpApplication->
HttpModule->
HttpHandler Factory->HttpHandler->
HttpHandler.ProcessRequest()
当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用.
HttpModule 事件
| BeginRequest | 指示请求处理开始 |
| AuthenticateRequest | 封装请求身份验证过程 |
| AuthorizeRequest | 封装检查是否能利用以前缓存的输出页面处理请求的过程 |
| ResolveRequestCache | 从缓存中得到相应时候触发 |
| AcquireRequestState | 加载初始化Session时候触发 |
| PreRequestHandlerExecute | 在Http请求进入HttpHandler之前触发 |
| PostRequestHandlerExecute | 在Http请求进入HttpHandler之后触发 |
| ReleaseRequestState | 存储Session状态时候触发 |
| UpdateRequestCache | 更新缓存信息时触发 |
| EndRequest | 在Http请求处理完成的时候触发 |
| PreSendRequestHenaders | 在向客户端发送Header之前触发 |
| PreSendRequestConternt | 在向客户端发送内容之前触发 |
HttpModel 和 HttpHandle的更多相关文章
- HttpHander与httpModel配置与应用
ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll, ...
- .net学习笔记---HttpHandle与HttpModule
问题1:什么是HttpHandler? 问题2:什么是HttpModule? 问题3:什么时候应该使用HttpHandler什么时候使用HttpModule? 答案1:HttpHandler,Http ...
- Asp.Net 自定义 httpmodel 中间件 管道
https://msdn.microsoft.com/en-us/library/aa719858(v=vs.71).aspx http://www.cnblogs.com/jimmyzhang/ar ...
- ASP.net之HttpModel
HttpModule是向实现类提供模块初始化和处置事件.当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于H ...
- ASP.NET MVC原理
仅此一文让你明白ASP.NET MVC原理 ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...
- CS Coder学习asp.net5个月的最大感悟:从http的角度重新认识asp.net(二)——我理解的ajax(二)
啊哈,时隔两个月,才开始写上一篇文章的后续,实在是惭愧.主要是年尾公司又来活了,忙得团团转,而且这段时间在自学mvc.我在上文中,提到过我对mvc框架的初步印象是:相比webform,算是回归了bs本 ...
- 仅此一文让你明白ASP.NET MVC原理
ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与Action名称: 一个名为MvcHandler ...
- ASP.NET伪静态实现
ASP.NET伪静态实现 在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢? 例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index- ...
- ASP.NET压缩输出的HTML内容
在ASP.NET中,怎么压缩输出的HTML内容,怎么替换HTML中的换行符,空白,TAB等符号呢? 1.新建一个基类,继承自System.Web.UI.Page,代码如下: using System. ...
随机推荐
- ICSharpCode.SharpZipLib.dll
using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; namespace { /// <summ ...
- Sql日期时间格式转换(转 子夜.)
sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...
- 在F12 控制台输入,可执行jquery操作
<!-- 控制台执行jquery -->var importJs=document.createElement('script') //在页面新建一个script标签importJs.se ...
- 创建数据收集器集(DSC)
TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...
- 云计算之路-阿里云上:在SLB上部署https遇到的问题及解决方法
一.问题场景 这个问题只会出现在云服务器操作系统使用Windows Server 2012的场景,如果使用的是Windows Server 2008 R2则不存在这个问题. 二.https部署场景 1 ...
- python - 接口自动化测试 - basic_data - 基础数据参数化方法封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: basic_data.py @ide: PyCharm C ...
- Java精确测量代码运行时间 代码执行时间 纳秒 nanoTime
Java精确测量代码运行时间: long startTime = System.nanoTime(); //開始時間 for(int i = 0;i<100 ...
- 第一个Maven案例Hello Maven
Maven目录结构 src:程序源代码 -main -java:java代码 -package:自定义的包 ...
- Codeforces Round #316 (Div. 2) C 思路/模拟
C. Replacement time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] E 三分+连续子序列的和的绝对值的最大值
E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes input sta ...