腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
博客园
专栏成员
举报
137
文章
218113
阅读量
29
订阅数
订阅专栏
申请加入专栏
全部文章(137)
其他(51)
.net(18)
api(15)
asp.net(13)
编程算法(13)
容器(10)
json(8)
数据库(8)
mvc(7)
mongodb(7)
http(7)
https(7)
html(6)
打包(5)
容器镜像服务(5)
网站(5)
开源(5)
java(4)
存储(4)
缓存(4)
网络安全(4)
iis(4)
c#(3)
android(3)
nosql(3)
github(3)
nginx(3)
人工智能(3)
面向对象编程(3)
javascript(2)
bash(2)
vue.js(2)
react(2)
ajax(2)
云数据库 Redis(2)
sql(2)
ide(2)
git(2)
文件存储(2)
babel.js(2)
windows(2)
c++(1)
php(1)
go(1)
r 语言(1)
node.js(1)
xml(1)
jquery(1)
ecmascript(1)
汇编语言(1)
linux(1)
apt-get(1)
访问管理(1)
命令行工具(1)
云数据库 MongoDB(1)
数据备份(1)
渲染(1)
express(1)
shell(1)
asp(1)
npm(1)
rpc(1)
rabbitmq(1)
安全(1)
数据结构(1)
架构设计(1)
wpf(1)
arguments(1)
datediff(1)
max(1)
null(1)
select(1)
size(1)
version(1)
web(1)
并发(1)
程序(1)
队列(1)
对象(1)
多线程(1)
函数(1)
集合(1)
进程(1)
跨域(1)
线程(1)
搜索文章
搜索
搜索
关闭
深入理解asp.net里的HttpModule机制
容器
http
iis
asp.net
说明: (1)、客户端浏览器向服务器发出一个http请求,此请求会被inetinfo.exe进程截获,然后转交给aspnet_isapi.dll进程,接着它又通过Http Pipeline的管道,传送给aspnet_wp.exe这个进程,接下来就到了.net framework的HttpRunTime处理中心,处理完毕后就发送给用户浏览器。 (2)、当一个http请求被送入到HttpRuntime之后,这个Http请求会继续被送入到一个被称之为HttpApplication Factory的一个容器当中,而这个容器会给出一个HttpApplication实例来处理传递进来的http请求,而后这个Http请求会依次进入到如下几个容器中:HttpModule --> HttpHandler Factory --> HttpHandler。当系统内部的HttpHandler的ProcessRequest方法处理完毕之后,整个Http Request就被处理完成了,客户端也就得到相应的东东了。 (3)完整的http请求在asp.net framework中的处理流程: HttpRequest-->inetinfo.exe->ASPNET_ISAPI.DLL-->Http Pipeline-->ASPNET_WP.EXE-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest() ps:红色的HttpApplication实例在HttpModule的Init方法中会用到。 (4)如果想在中途截获一个httpRequest并做些自己的处理,就应该在HttpRuntime运行时内部来做到这一点,确切的说是在HttpModule这个容器中来实现。 2、HttpModule工作原理 负责监听HttpRequest,同时对HttpRequest增添或者过滤掉一部分内容。也就是说,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。 HttpModule实现了接口IHttpModule,我们可以自定义实现该接口的类,从而取代HttpModule。 asp.net默认的HttpModule如下:
莫问今朝
2019-02-25
714
0
ASP.NET 管道
缓存
iis
.net
序号 名称 说明 1 BeginRequest ASP.NET开始处理的第一个时间,表示处理的开始 2 AuthenticateRequest 验证请求,一般用来取得请求的用户信息 3 PostAuthenticateRequest 已经获取请求的用户信息 4 AuthorizeRequest 授权,一般用来检查用户的请求是否获得权限 5 PostAuthorizeRequest 用户请求已经得到授权 6 ResolveRequestCache 获取以前处理缓存的处理结果,如果以前缓存过,那么不必再进行请求
莫问今朝
2019-02-25
1.8K
0
WCF技术剖析之二:再谈IIS与ASP.NET管道
iis
asp.net
android
api
http
在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程:
莫问今朝
2019-02-25
1.2K
0
IIS 5.x与ASP.NET
iis
asp.net
android
api
http
我们先来看看IIS 5.x是如何处理基于ASP.NET资源(比如.aspx,.asmx等)请求的,整个过程基本上可以通过图1体现。
莫问今朝
2019-02-25
2.8K
0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档