http请求response拦截(IIS)

本文探讨了基于微软IIS的网站响应拦截器的开发,旨在研究如何在响应中插入JS代码。介绍了IIS处理HTTP请求的原理,包括工作进程、应用程序池的角色,并详细阐述了请求从HTTP.SYS到HttpHandler的流程。同时,提供了在Win7 IIS 7.5上部署网站并配置应用程序开发功能的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于微软系IIS开发的网站response拦截器的研究与实现

目的:针对微软系IIS开发的网站的response的拦截器的研究,插入一段js代码
工具:使用IIS response filter
语言:VB / C#
测试环境:本次测试主要在win7上进行,使用微软自带的IIS,版本为7.5

IIS处理http请求的原理:

在介绍原理之前,我们先认识俩个名词:工作进程、应用程序池。
工作进程:在IIS中,工作进程(w3wp.exe)运行ASP.NET程序管理所有请求。ASP.NET都运行在工作进程中,当请求到来时,工作进程会生成Request和 Response相关信息。
应用程序池:应用程序池是工作进程的容器,一个程序出错或资源回收,应用程序池之间独立互不影响。
HTTP.SYS负责把请求传入相应的应用程序池中 -> 应用程序池接收到请求 -> 开启工作进程(w3wp.exe)。该进程检查所有的URL加载哪个扩展asp.net ,加载时会附带自己的ISAPI扩展(aspnet_isapi.dll),以便在IIS中映射
一旦加载aspnet_isapi.dll就会构造HttpRunTime类(应用程序入口) 通过HttpRunTime.ProcessRequest()方法处理请求。
一旦调用此方法,一个HttpContext的实例产生,通过HttpContext.Current._ 获取实例 ,可以获取一些常用的对象,比如:Request、Response、Session等。
之后HttpRunTime会通过HttpApplicationFactory类加载一个HttpApplication对象
每一次请求都要穿过一堆堆的HttpModule到达HttpHandler —— 通过自定义HttpModule来再请求和响应之间做处理。可见附图:
http请求原理

win7的IIS发布网站系统 部署项目:

1、确保系统上已经安装IIS,如果没有安装,通过【控制面板】→【程序】→【程序和功能】→【打开或关闭Windows功能】选中Internet信息服务下面的所有选项,确定
这里写图片描述
对应用程序开发功能进行如下配置:
控制面板->打开或关闭windows功能->Internet信息服务->万维网服务->应用程序开发功能,勾选上“.net扩展性”、“ASP.NET”、“ISAPI扩展”、”ISAPI筛选器”,保存后,重启IIS服务器即可。
这里写图片描述
2、打开IIS,在网站上右击,选择【添加网站】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值