开发者社区> 技术小甜> 正文

ISAPI

简介:
+关注继续查看

Internet Server Application Programming Interface (ISAPI)是IIS的多层API。是可被微软IIS加载和调用的DLL。用于扩展HTTP服务器的功能。

ISAPI 也能够由Apache的mod_isapi模块实现,这样在微软的IIS运行的服务器端WEB应用程序也能在Apache上使用,其他第三方的服务器例如Zeus Web Server也提供ISAPI接口。

微软的WEB服务器是Internet Information Services,他是由许多子应用程序组成,非常的可配置化。ASP.NET就是IIS中的一个子应用程序。ISAPI是一个很低级的编程系统,所以提供了更好的性能。

ISAPI由2部分组成,ISAPI扩展和ISAPI过滤。只有两种类型的应用程序可以用ISAPI开发。过滤和扩展必须被编译成DLL,然后注册到IIS才能运行。

ISAPI应用程序可以由任何语言编写,有很多的库可以帮助简化ISAPI的开发,另外,有一种叫ATL Server的技术专门开发ISAPI程序。( ATL Server 是一个用来创建 ISAPI DLL 的 C++ 模板库。)

ISAPI扩展

ISAPI扩展是真实的运行在IIS上的应用程序,他们可以利用IIS提供的所有功能。ISAPI扩展以DLL的方式实现,他们被加载到由IIS控制的进程中,客户端可以用访问静态html的方法和访问ISAPI扩展的方法一致。某种文件扩展名或者文件夹或者站点都可以被映射,由ISAPI扩展去处理。

以下是常用的作为实现ISAPI扩展的ISAPI应用程序。

Active Server Page(ASP).标准安装

ASP.NET.IIS6.0前面版本,标准安装

ColdFusion,后期版本的ColdFusion可以装在IIS上

Perl

PHP

 

ISAPI过滤

ISAPI过滤用来修改或者提升IIS的功能。他们总是运行在IIS上,过滤每一个请求直到他们找到需要处理的请求。ISAPI过滤可以通过编程来检查和修改发送进来的数据和发送出去的数据。内部编程和外部配置决定了过滤调用的顺序。类似于Windows中的钩子,ISAPI过滤器将在发生某些特定事件的时候被调用(例如客户请求网页),可监视、拦截或修改客户端与服务器直接的传输数据。常用作数据库防下载、加密和压缩数据、统计访问人数等。

过滤以DLL的方式实现,可以以站点级别或者全局级别被注册到IIS服务器,比如,他们可以被应用到IIS服务器上的所有站点。过滤器,当工作进程开始运行,过滤器就会被初始化,并且开始监听所有的请求。

ISAPI过滤器实现的通常的任务

iis_isapi_filters

包括:

改变客户端发送来的请求数据(url和标头)。

控制物理文件和URL之间的映射。

控制你们用户的用户名和密码或者基本的认证。

修改或者分析认证完成后的请求。

修改要发送给客户的Response。

运行“access denied”响应。

当请求完成后运行处理。

当客户端关闭是运行处理。

执行专用日志和流量分析。

执行客户授权。

处理压缩和解压缩。

















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/591258 ,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C++ DLL导出类 知识大全
在公司使用C++ 做开发,公司的大拿搭了一个C++的跨平台开发框架。在C++开发领域我还是个新手,有很多知识要学,比如Dll库的开发。    参考了很多这方面的资料,对DLL有一个基本全面的了解。有一个问题让我有点困惑,普通的导入导出C++类的方式都是使用_declspec(dllexport) /_declspec(dllimport)来导入导出类,但是在公司的开发中我们没有导入导出,而是定义了一些只有纯虚函数的抽象类,然后定义了一个工厂类,将这个工厂类注册到框架的服务中心中,使用时从服务中心拿到这个工厂类,就可以创建Dll中的其它类。
1414 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载