一、ISAPI
1.背景:
- 在Internet时代开端,客户端的需求非常有限;.htm文件就可以满足需求。但是随着时间的流逝,客户端需求的扩充超越了.htm文件或静态文件所包含的功能;
- 开发者需要扩充或扩展Web服务器的功能。web 服务器厂商设计了不同的解决方案,但是都遵循的同一主题:向Web服务器插入某些组件。所有的web服务器补充技术都允许开发者建立并插入组件以增强web服务器的功能。Microsoft提出了ISAPI(internet服务器API),网景公司提出了NSAPI.....
2.ISAPI是一种重要的技术,它允许我们增强与ISAPI兼容的web服务器(IIS就是一种与ISAPI兼容的web服务器)的能力。可以使用下面的技术达到这个目的:
- ISAPI扩展:使用Win32动态链接库来实现的。你可以把ISAPI扩展看作是一个普通的应用程序。ISAPI扩展的处理目标是Http请求。
- ISAPI过滤器:客户端每次向服务器发出请求,请求要经过过滤器。客户端不需要再请求中指定过滤器,只需要简单地把请求传递给相关的过滤器,接着Web服务器把请求传递给相关的过滤器。接下来过滤器可能修改请求,执行某些登陆操作等。
3.Asp.Net请求处理过程
请求过程是基于管道模型的,在模型中Asp.net把Http请求传递给管道中的所有模块。每个模块都接收Http请求并完全控制权限。模块可以任何自认为合适的方式来处理请求。一旦请求经过了http模块,就最终被Http处理程序处理。Http处理程序对请求进行一些处理,并且结果将再次经过管道中的Http模块。