まず、Asp.net がどのように機能するかについて説明します。
具体的には以下のとおりです。 まず、顧客はWEBページをリクエストします。次に、WEB サービスは命令ファイル (.aspx) を探し、これはダイナミック リンク ライブラリ aspnet_isapi.dll によって処理されます。その後、Asp.net コードはコンパイルのために共通言語ランタイムに送信されます。次に、HTML ストリームがブラウザに返されて順序付けされます。最後に、ブラウザは HTML を処理してページを表示します。
ISAPIとは何ですか?
インターネット時代の初期には、クライアントのニーズは非常に限られており、必要なのは .htm ファイルだけでした。ただし、時間の経過とともに、クライアントは .htm ファイルまたは静的ファイルに含まれる機能を超えて拡張する必要があります。
開発者は、Web サーバーの機能を拡張または拡張する必要があります。 Web サーバー ベンダーはさまざまなソリューションを設計していますが、Web サーバーに特定のコンポーネントを挿入するという同じテーマに従っています。すべての Web サーバーの補足テクノロジーにより、開発者はコンポーネントを構築してプラグインして、Web サーバーの機能を強化できます。 Microsoft は ISAPI (Internet Server API) を提案し、Netscape は NSAPI (Netscape Server API) を提案しました。 ISAPI は、ISAPI 互換 Web サーバーの機能を強化できる重要なテクノロジです (IIS は ISAPI 互換 Web サーバーです)。これを実現するために次のコンポーネントを使用します。
1. ISAPI 拡張機能: ISAPI 拡張機能は、Win32 ダイナミック リンク ライブラリを使用して実装されます。 ISAPI 拡張機能は通常のアプリケーションと考えることができます。 ISAPI拡張の処理対象はhttpリクエストです。
2. ISAPI フィルター: クライアントがサーバーにリクエストを行うたびに、リクエストはフィルターを通過する必要があります。クライアントはリクエストでフィルタを指定する必要はなく、リクエストを Web サーバーに送信するだけで、Web サーバーはリクエストを関連するフィルタに渡します。次に、フィルタはリクエストを変更したり、ログイン操作を実行したりすることがあります。
ASP.NETリクエスト処理プロセス:
ASP.NET 要求処理プロセスはパイプライン モデルに基づいており、ASP.NET は http 要求をパイプライン内のすべてのモジュールに渡します。各モジュールは http リクエストを受信し、完全な制御を持ちます。モジュールは、適切と思われる任意の方法でリクエストを処理できます。リクエストがすべての HTTP モジュールを通過すると、最終的に HTTP ハンドラーによって処理されます。 HTTP ハンドラーはリクエストに対して何らかの処理を実行し、結果は再びパイプライン内の HTTP モジュールを通過します。
ISAPI フィルター:
IIS 自体は動的ページをサポートしていません。つまり、.asp、.aspx、.cgi、.php などの静的 HTML ページのコンテンツのみがサポートされます。IIS はこれらのタグを処理せず、それらを扱います。 as 作成テキストは何も処理せずにクライアントに送信されます。この問題を解決するには。 IISには標準コンポーネント(COMコンポーネント)としてISAPIフィルターという仕組みがあります。
Asp.net サービスを IIS に登録すると、各拡張子が処理できるファイル拡張子 (*.ascx、*.aspx など) が IIS に登録されます。拡張機能が開始されると、定義されたメソッドに従って IIS で処理できないファイルが処理され、コードを特別に処理するプロセスに制御がジャンプします。これにより、このプロセスがコードの処理を開始し、標準の HTML コードを生成し、これらのコードは生成後に元の HTML に追加され、最終的に完全な HTML が IIS に返され、IIS はコンテンツをクライアントに送信します。