zoukankan      html  css  js  c++  java
  • ISAPI 的魅力

          在我的前面一篇博文asp.net 页面生命周期小谈中提到过ISAPI,可能一些朋友会不明白ISPAI是什么东东,因此,我觉得有必要在此向个问讲讲自己对ISAPI所了解的一些内容。

      互联网早期时候,客户端的需求非常有限,静态文件就可以满足用户的需求,但是随着时间的流逝,客户端的需求的扩充超越了.htm 文件所包含的功能,这时候,开发商们只能是对其web服务器功能进行扩充,虽然 Web服务器厂商设计了不同的解决方案,但都是遵循同一个主题---向 Web服务器插入某些组件,几乎所有的Web 服务器补充技术都允许开发者建立并插入组件以增强 Web服务器的工能,微软提出的便是ISAPI,即Internet服务器API(Internet Server Application Programming Interface)。
        ISAPI是一种重要的技术,它允许我们增强与ISAPI兼容的Web服务器的能力,其中IIS就是一种与ISAPI兼容的Web服务器,说的更确切点,IIS会把客户的请求的页面而自己不能处理的动态页面交给 ASPNET_ISAPI.dll 去处理,而这个动态链接库是在装了.net framework 后才会出现在我们的电脑里面的。


        ISAPI扩展: 其中ISAPI扩展是使用Wind32动态链接库来实习的(由于本人对c语言不是学的很深,不能够在此为各位解答原理了),当然我们可以把ISAPI看成是一个普通的应用程序,而这个扩展的目标就是HTTP的请求。


        ISAPI过滤器:客户端每次向服务器发出请求的时候,都要经过过滤器,客户端不需要在请求中指定过滤器,只需简单的把请求发给Web服务器,接着,Web服务器把请求传给相关的过滤器,接下来,过滤器就会自动的按照程序员所编写的代码执行。

        对于IIS来说,IIS本身是不支持动态页面的,仅仅支持静态html页面的内容,对于.aspx等,IIS并不会去处理这些标记,他就会把他们当做文本,一定都不会处理的发送给客户端,当然,对于我们用户来说,是万万不能够接受的,因此,IIS有一种机制,叫做ISAPI的筛选器,它是一个标准组件,com组件。当asp.net 服务注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面,当扩展启动后,就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中,让这个进程开始处理代码,生成标准的HTML代码,生成后的代码加入到原有的html中,最后把完整的Html返回给IIS,IIS再把内容发送到客户端。

    下面这张图可以简单的帮你了解到ISAPI在 asp.net 页面执行过程中所扮演的重要角色。

                        

                                   


       在HttpModule实现了ISPAI筛选器的功能,是通过对IhttpModule接口的继承来处理的。


       而HttpHandler实现了ISAPI的扩展功能,它处理请求的信息和发送响应,而HttpHandler功能的实现通过实现IhttpHandler接口来达到。我们可以这样说,任何实现了IhttpHandler接口的类都可以用于处理输入的Http请求,HTTP处理程序与ISAPI扩展有些类似,HTTP处理程序和ISAPI扩展的差别在于在URL中可以使用HTTP处理程序的文件名直接调用它们,与ISAPI扩展类似。

  • 相关阅读:
    鼠标的移动触发函数改变字体颜色
    Godaddy创始人:成就亿万富翁的10条规则
    关于编程,大学没有传授的十件事
    Using XAMPP for Local WordPress Theme Development
    100+ Resources for Web Developer
    你必须非常努力,才能看起来毫不费力
    建立WordPress博客网站——个人教程
    函数指针和指针函数
    每天写出好代码的5个建议
    LumiSoft Mail Server
  • 原文地址:https://www.cnblogs.com/xianrongbin/p/2250978.html
Copyright © 2011-2022 走看看