Internet Server API
# Internet Server API

Internet Server API (ISAPI) ist eine Programmierschnittstelle (Application Programming Interface) von Microsoft, die
* im Microsoft Internet Information Services (Webserver)
* im Microsoft Exchange Server
* im Microsoft Internet Security and Acceleration Server (Firewall und Web Cache)
verwendet wird, um die Ausführung von (Web-)Anwendungen auf diesen Servern zu ermöglichen.
Man unterscheidet ISAPI-Extensions und ISAPI-Filter.

## ISAPI-Extensions

ISAPI-Erweiterungen sind als nächste Generation der CGI-Anwendungen anzusehen, können jedoch ohne entsprechende Zusatzprogramme von Drittanbietern ausschließlich auf Microsoft-Servern ausgeführt werden.
Eine ISAPI-Erweiterung ist, anders als ein PHP- oder ASP-Skript, eine DLL-Datei, welche je nach Konfiguration bereits beim Starten oder erst bei Bedarf durch den Microsoft Internet Information Server geladen wird.
Je nach Anwendungssicherheit können ISAPI-Erweiterungen dabei gemeinsam von einer Host-Anwendung (diese wird zum Ausführen von DLLs benötigt) oder getrennt voneinander ausgeführt werden.

### Vor- und Nachteile

Als Vorteil ist der Geschwindigkeitsgewinn zu nennen.
ISAPI-Erweiterungen ermöglichen einen tieferen Eingriff in die Software des ausführenden Systems, wodurch vorhandene Ressourcen (z. B. Arbeitsspeicher, aber auch andere Geräte wie Videoschnittkarten, ISDN-Adapter-Karten etc.) besser genutzt und direkt adressiert werden können.
Im Gegensatz zu Skripts wie ASP oder PHP besteht eine ISAPI-Erweiterung aus kompiliertem Quelltext (kompilierten Binärdateien), wie die in Microsoft-Betriebssystemen eingesetzten System-DLL-Dateien, und ist daher nicht in Form ihres Quelltexts lesbar.

## ISAPI-Filter

ISAPI-Filter sind DLLs, die im Web-Dienst hinzugefügt werden können, um auf bestimmte Ereignisse im Vorfeld einzugreifen. Anders als ISAPI-Erweiterungen sind ISAPI-Filter bereits nach dem Starten des Webservers im Speicher resident.
ISAPI-Filter greifen direkt in den Datenverkehr eines Webservers oder Proxys ein. Dadurch können sie die übertragenen Daten lesen und verändern. Im Microsoft Exchange Server werden sie z. B. zur Authentifizierung verwendet.

## Anwendungsbeispiele

Beispiele für ISAPI-Filter bzw. ISAPI-Erweiterungen sind
* die im Microsoft Internet Information Server integrierte asp.dll, die zur Ausführung von ASP-Dateien dient
* die separat installierbare php.dll, mit der PHP-Dateien auf einem Microsoft Webserver ausgeführt werden können.