インターネットサーバー アプリケーション プログラミング インターフェイス( ISAPI ) は、Microsoft の Windows ベースの Web サーバー サービスのコレクションであるインターネット インフォメーション サービス (IIS) の n層 API です。IIS と ISAPI の最も有名なアプリケーションは、Microsoft の Web サーバーです。
ISAPI は Apache のmod_isapiモジュールによっても実装されており、Microsoft の IIS 用に作成されたサーバー側 Web アプリケーションを Apache で使用できます。Zeus Web Server などの他のサードパーティ Web サーバーも ISAPI インターフェイスを提供しています。
Microsoft の Web サーバー アプリケーション ソフトウェアはインターネット インフォメーション サービスと呼ばれ、多数の「サブアプリケーション」で構成され、非常に柔軟に構成できます。ASP.NET は IIS の 1 つのスライスであり、プログラマーは Microsoft .NET CLR でサポートされているプログラミング言語 (VB.NET、C#、F#) を選択して Web アプリケーションを作成できます。ISAPI は、はるかに低レベルのプログラミング システムであり、シンプルさは犠牲になりますが、パフォーマンスははるかに優れています。
ISAPI アプリケーション
ISAPI は、拡張機能とフィルターの 2 つのコンポーネントで構成されています。[1]これらは、ISAPI を使用して開発できる唯一の 2 種類のアプリケーションです。フィルターと拡張機能は両方とも DLL ファイルにコンパイルされ、Web サーバーで実行されるように IIS に登録される必要があります。
ISAPI アプリケーションは、C、C++、Delphi など、標準 C 関数のエクスポートが可能な任意の言語を使用して記述できます。ISAPI アプリケーションの開発を容易にするライブラリがいくつかあり、Delphi Pascal には Web アプリケーション開発用の Intraweb コンポーネントがあります。MFC には、 ISAPIアプリケーションを開発するためのクラスが含まれています。さらに、ISAPI アプリケーションの開発専用の C++ ライブラリを含む ATL Serverテクノロジもあります。
拡張機能
ISAPI 拡張機能は、IIS 上で実行される真のアプリケーションです。IIS が提供するすべての機能にアクセスできます。ISAPI 拡張機能は、IISによって制御されるプロセスに読み込まれるDLLとして実装されます。クライアントは、静的 HTML ページにアクセスするのと同じ方法で ISAPI 拡張機能にアクセスできます。特定のファイル拡張子、または完全なフォルダーやサイトを、ISAPI 拡張機能で処理されるようにマップできます。
フィルター
ISAPI フィルターは、IIS が提供する機能を変更または拡張するために使用されます。フィルターは常に IIS サーバー上で実行され、処理が必要な要求が見つかるまですべての要求をフィルターします。フィルターは、受信データ ストリームと送信データ ストリームの両方を検査および変更するようにプログラムできます。内部でプログラムされ、外部で構成された優先順位によって、フィルターが呼び出される順序が決まります。
フィルターは DLL として実装され、サイト レベルまたはグローバル レベルで IIS サーバーに登録できます (つまり、IIS サーバー上のすべてのサイトに適用されます)。フィルターはワーカー プロセスが開始されると初期化され、フィルターがインストールされているサイトへのすべての要求をリッスンします。
ISAPI フィルターによって実行される一般的なタスクは次のとおりです。
- クライアントから送信されたリクエストデータ(URLまたはヘッダー)の変更
- URLにマッピングされる物理ファイルを制御する
- 匿名認証または基本認証で使用するユーザー名とパスワードを制御する
- 認証が完了した後にリクエストを変更または分析する
- クライアントに返される応答を変更する
- 「アクセス拒否」応答に対するカスタム処理の実行
- リクエストが完了したら処理を実行する
- クライアントとの接続が閉じられたときに処理を実行する
- 特別なログ記録またはトラフィック分析を実行します。
- カスタム認証を実行しています。
- 暗号化と圧縮の処理。
一般的な ISAPI アプリケーション
以下は、ISAPI 拡張機能として実装されている一般的な ISAPI アプリケーションのリストです。
- アクティブ サーバー ページ(ASP) が標準でインストールされています
- ActiveVFP、IIS にインストールされた Active Visual FoxPro
- ASP.NET は、IIS 6.0 以降に標準でインストールされます。
- ColdFusion、それ以降のバージョンのColdFusionはIISにインストール可能です
- Perl ISAPI (別名 Perliis) は無料でインストールできます
- PHPは無料でインストールできますが、現在はメンテナンスされていません。[2]
ISAPI開発
ISAPI アプリケーションは、 Windows DLLを生成できる任意の開発ツールを使用して開発できます。ISAPI フレームワーク アプリケーションを生成するためのウィザードは、Visual C++ 4.0 以降の Microsoft 開発ツールで使用できます。
