La interfaz de programación de aplicaciones de servidor de Internet ( ISAPI ) es una API de n niveles de Internet Information Services (IIS), la colección de servicios de servidor web basados en Windows de Microsoft. La aplicación más destacada de IIS e ISAPI es el servidor web de Microsoft.
El módulo mod_isapi de Apache también ha implementado ISAPI para que las aplicaciones web del lado del servidor escritas para IIS de Microsoft puedan usarse con Apache. Otros servidores web de terceros, como Zeus Web Server, también ofrecen interfaces ISAPI.
El software de aplicación de servidor web de Microsoft se denomina Internet Information Services, que está formado por una serie de "sub-aplicaciones" y es muy configurable. ASP.NET es una de esas partes de IIS, que permite a un programador escribir aplicaciones web en el lenguaje de programación de su elección (VB.NET, C#, F#) compatible con Microsoft .NET CLR. ISAPI es un sistema de programación de nivel mucho más bajo, que ofrece un rendimiento mucho mejor, a expensas de la simplicidad.
ISAPI consta de dos componentes: extensiones y filtros. [1] Estos son los únicos dos tipos de aplicaciones que se pueden desarrollar utilizando ISAPI. Tanto los filtros como las extensiones deben compilarse en archivos DLL que luego se registran en IIS para ejecutarse en el servidor web.
Las aplicaciones ISAPI se pueden escribir utilizando cualquier lenguaje que permita la exportación de funciones estándar de C, por ejemplo, C, C++, Delphi. Hay un par de bibliotecas disponibles que ayudan a facilitar el desarrollo de aplicaciones ISAPI y, en Delphi Pascal, los componentes Intraweb para el desarrollo de aplicaciones web. MFC incluye clases para desarrollar aplicaciones ISAPI. Además, existe la tecnología ATL Server , que incluye una biblioteca C++ dedicada al desarrollo de aplicaciones ISAPI.
Las extensiones ISAPI son aplicaciones reales que se ejecutan en IIS y tienen acceso a todas las funciones que ofrece IIS. Las extensiones ISAPI se implementan como archivos DLL que se cargan en un proceso controlado por IIS. Los clientes pueden acceder a las extensiones ISAPI de la misma forma que acceden a una página HTML estática. Se pueden asignar determinadas extensiones de archivo o una carpeta o sitio completo para que los gestione una extensión ISAPI.
Los filtros ISAPI se utilizan para modificar o mejorar la funcionalidad proporcionada por IIS. Siempre se ejecutan en un servidor IIS y filtran cada solicitud hasta que encuentran una que necesitan procesar. Los filtros se pueden programar para examinar y modificar tanto los flujos de datos entrantes como salientes. Las prioridades programadas internamente y configuradas externamente determinan en qué orden se invocan los filtros.
Los filtros se implementan como archivos DLL y se pueden registrar en un servidor IIS a nivel de sitio o a nivel global (es decir, se aplican a todos los sitios de un servidor IIS). Los filtros se inicializan cuando se inicia el proceso de trabajo y escuchan todas las solicitudes del sitio en el que están instalados.
Las tareas comunes realizadas por los filtros ISAPI incluyen:
Esta es una lista de aplicaciones ISAPI comunes implementadas como extensiones ISAPI:
Las aplicaciones ISAPI se pueden desarrollar utilizando cualquier herramienta de desarrollo que pueda generar una DLL de Windows . Los asistentes para generar aplicaciones de marco ISAPI están disponibles en las herramientas de desarrollo de Microsoft desde Visual C++ 4.0.