ISAPI详细分析
一、ISAPI包括扩展和过滤器两种形式,都可以利用来开发动态Web内容。ISAPI扩展和过滤器都以DLL形式实现,供IIS进程调用。 扩展按规范必须实现两个函数接口:GetExtensionVersion、HttpExtensionProc和一个可选函数接口:TerminateExtension;扩展和Web服务器中特定虚拟目录下的文件类型关联,可以和特定的文件后缀,比如.txt关联,也可以使用通配符*和所有文件关联。比如ASP就是一个扩展,它的实现文件是asp.dll,和.asp文件关联,客户端所有的对.asp文件的请求都将进入asp.dll扩展来处理。 过滤器按规范也必须实现两个函数接口:GetFilterVersion、HttpFilterProc和一个可选函数接口:TerminateFilter;过滤器分为站点级和全局级两种类型,前者只处理被装载的特定网站的事件,后者处理该IIS服务器上所有网站的事件。 1、ISAPI扩展 ISAPI扩展的可能用途 IIS6.0之前的版本只有ISAPI过滤器能接收某特定URL的所有请求,但在6.0开始后ISAPI扩展也可以截获、改变、重定向或者拒绝对某特定URL空间的所有HTTP请求。现在ISAPI扩展基本可以实现所有过滤器的功能,并且运行得更快,效率更高。所以如非特别需要,微软推荐尽量少用过滤器。请参见过滤器用途。 2