多くのユーザーにとって、Web Web サイトの成功か失敗は主に、Web サイトが提供するコンテンツと機能に依存します。これらのコンテンツと機能をサポートする Web サーバーが、舞台裏の本当の主役であることはほとんど知られていません。統計によると、世界中には 500 万以上の Web サイトがあります。すべての Web サイトの背後で Web サーバーが実行されています。Web サーバーとは何でしょうか?どのように機能するのでしょうか? …… C/S から Web へ 初期のネットワーク システムは単純なホスト/端末システムで、すべてのアプリケーションはホストによって実行され、端末はサーバー上の対応するプログラムを実行するだけでした。 PC 時代の到来により、コンピュータ ネットワークとコンピュータ アプリケーションは大きく発展しました。PC の価格が継続的に低下し、性能が向上し続けたため、端末指向のメインフレームの適用分野はますます少なくなりました。特に、NetWare や Windows NT などのネットワーク オペレーティング システムの台頭と、ネットワーク データベース システムの出現により、ネットワーク アプリケーションの新しいモデルである C/S (クライアント/サーバー) モデルが開かれました。 C/Sモデルは2層構造のシステムで、第1層はクライアント上のプレゼンテーションロジックやビジネスロジックを担当し、第2層はネットワーク上で動作するデータベースなどのサーバーシステムです。 C/S モードは、トランザクションを分離し、ネットワーク上で分散コンピューティングを実現し、企業のローカル エリア ネットワークの構築、企業の内部業務管理の改善、作業効率の向上を長年にわたって実現してきました。ただし、C/S モデルには、システムの統合と保守、操作インターフェイスの一貫性、およびシステムの拡張性の点で明らかな制限があります。したがって、インターネットでは、ホスト/端末ネットワークが C/S モデルのネットワーク システムに置き換えられるのと同じです。イントラネット技術環境、新しいシステムモデルも登場します。 Web技術をベースとしたインターネット/イントラネット イントラネットは、TCP/IPプロトコルをベースとし、ユーザーがいつでも低コストで簡単にアクセスできる企業イントラネットです。顧客のブラウザを使用して企業の Web サイトにアクセスし、どこからでも必要なデータを確認できます。ブラウザ クライアントの操作インターフェイスの一貫性により、C/S モードのクライアント プログラムの多様性が回避されると同時に、サーバー側のオープンで標準ベースの接続ソリューションにより、企業はインターネットを介して外部の世界に簡単にアクセスできます。 Web 情報は動的であり、インタラクティブな公開方法は企業のサービス品質を根本的に変え、ビジネス チャンスを増大させます。 図 1 Web の 3 層構造 Web テクノロジーの 3 層構造では、データベースは各クライアントに直接サービスを提供するのではなく、Web サーバーと通信して、動的、リアルタイム、対話型の顧客情報サービスを実現します。この機能は、CGI、ISAPI、NSAPI、Java などのサーバー アプリケーションを通じて実現されます。図 1 に示すように。 Web サーバーとは何ですか? Web テクノロジーの独特の機能は、ハイパーリンクとマルチメディア情報の使用です。 Web サーバーは、ハイパーテキスト マーク言語 (HTML-HyperText Marked Language) を使用してネットワーク リソースを記述し、Web ブラウザが読み取る Web ページを作成します。 HTML ドキュメントの特徴は対話性です。一般的なテキストでもグラフィックでも、ドキュメント内のリンクを通じてサーバー上の他のドキュメントに接続できるため、顧客は必要な情報をすばやく検索できます。 HTML Web ページは、ユーザーがサーバー アプリケーションを通じて入力してデータベースに送信するためのフォームを提供することもできます。この種のデータベースは通常、マルチメディア データ型をサポートします。 Web ブラウザ (Web Browser) は、文書の取得と表示に使用されるクライアント アプリケーションであり、ハイパーテキスト転送プロトコル HTTP (HyperText Transfer Protocol) を介して Web サーバーに接続されます。汎用の低コストブラウザにより、2層構造のC/Sモードクライアントソフトウェアの開発・保守コストを削減します。現在、一般的な Internet Explorer と Netscape Navigator は、基本的なドキュメントの検索、表示、およびナビゲーション機能を提供することに加えて、高度な HTML 表示 (テーブルやフレームなど) や ActiveX、Java、JavaScript などの機能もサポートしています。 Web サーバーはどのように機能するのでしょうか? 多くのユーザーにとって、Web Web サイトの成否は主に、Web サイトが提供するコンテンツと機能にかかっています。しかし、それらのコンテンツと機能をサポートしているのが Web サーバーであることは知りません。舞台裏の本当のヒーロー。では、Web サーバーはどのように動作するのでしょうか? 数年前、Web サーバーが初めて登場したとき、Web サーバーがサポートするアプリケーションは、http://www.ccidnet.com などの Web ページのリクエストを受信したときの HTML ファイルと画像の単純な閲覧でした。 .html の場合、URL (Uniform Resource Locator-Uniform Resource Locator) を通じて対応するホスト ファイル サーバーを見つけ、対応するファイルindex.html を見つけて、ホスト ファイル サーバーからファイルをダウンロードし、HTTP プロトコルを使用します。 Webブラウザ(Webブラウザ)に送信されます。もちろん、これは単なる基本的な機能であり、Web サーバーと Web ブラウザーの関係は決して単純ではありません。 Web アプリケーションの最も重要な拡張機能の 1 つは、動的コンテンツの導入です。たとえば、Web サーバーは、ユーザーが入力したリクエストに基づいて Web ページを直接または間接的に作成し、それを Web ブラウザーに返すことができます。動的コンテンツ アプリケーションを実装する最も初期の方法は、CGI (Comman Gateway Interface) を使用することです。CGI には、Web サーバー上でのプログラムの実行と、Web サーバーと Web ブラウザー間の動的コンテンツの送信に関する基本的な定義があります。写真2に示すように。Web アプリケーションにおけるもう 1 つの発展は、HTTPS (HyperText Transmission Protocol、Secure Hypertext Transfer Protocol) の出現です。これにより、Web サーバーと Web ブラウザ間の通信のセキュリティが確保され、電子トランザクションが可能になります。 Web サーバーと Web ブラウザ間の通信は HTTP プロトコルを介して行われます。では、HTTP プロトコルとは何でしょうか。簡単に言えば、HTTP プロトコルは Web ブラウザと Web サーバー間のアプリケーション層プロトコルであり、TCP/IP プロトコルに基づいており、汎用のステートレスなオブジェクト指向プロトコルです。その動作原理には 4 つのステップが含まれます。 図 2 CGI 定義図 接続: Web ブラウザは Web サーバーとの接続を確立し、ソケットと呼ばれる仮想ファイルを開きます。このファイルの確立は接続の成功を示します。 リクエスト: Web ブラウザはソケットを通じて Web サーバーにリクエストを送信します。 応答: Web ブラウザがリクエストを送信すると、リクエストは HTTP プロトコルを通じて Web サーバーに送信されます。これを受信したWebサーバーはトランザクション処理を行い、処理結果をHTTP経由でWebブラウザに返すことで、Webブラウザ上に要求されたページが表示されます。 接続を閉じる: 応答が完了したら、他の Web ブラウザが Web サーバーとの接続を確立できるように、Web ブラウザと Web サーバーを切断する必要があります。 このように、Web サーバーの処理には、接続を受け入れる - 静的または動的コンテンツを生成してブラウザに送り返す - 接続を閉じる - 次の接続を受け入れる、などの完全な論理段階が含まれます。訪問者が多い場合、必然的にサーバーが混雑することが考えられます。この問題を解決するには、マルチスレッドとマルチプロセスという 2 つのテクノロジを使用できます。 Web サーバーは、Unix システムのポート監視モジュール (マルチプロセス モード)、マルチスレッド、マルチプロセス、または 2 つのテクノロジの混合をサポートします。 接続すると、Web サーバーはどのようにして Web ブラウザにコンテンツを提供するのでしょうか?ここで重要なのは、コンテンツがブラウザーによって認識され、表示される必要があるということです。コンテンツの表示方法を決定する主なメカニズムは、MIME (Multiple Purpose Internet Mail Extension) タイプです。MIME は、送信されるドキュメントの種類を Web ブラウザに伝えます。また、このタイプの識別は、単純な画像ドキュメントや HTML には限定されません。書類。たとえば、Apache WebServer の Mine.type 設定ファイルには 370 のデフォルトの MIME タイプがあり、これがすべての MIME タイプではありません。 MIME タイプは、ファイル接尾辞に関連付けられたタイプ/サブタイプ構文によって区別されます。たとえば、MPEG ビデオ コンテンツを含むファイルには、接尾辞 mpeg、mpg、または mpe が付きます。 Web サーバーの役割は、最終的にはコンテンツ、特に動的コンテンツの提供に反映されます。これは、Web サーバーとアプリケーション サーバーの主な違いでもあります。 Web ブラウザ(HTML ドキュメント サービスの提供に加えて、Web サーバーは XML 形式などのアプリケーション データも提供します。つまり、Web サーバーは HTML ドキュメントを提供するだけでなく、より大規模なシステム上のさまざまなデータ ソースとの接続を確立できます) 1 つ目は、ユーザーが入力したリクエストに応じて HTML データを動的に送信する CGI です。 CGI は開発言語ではなく、CGI 用に作成されたプログラムを使用して Web サーバーを実装できる単なるプロトコルです。動的コンテンツをリクエストするたびに新しい CGI プログラムを起動する必要があるため、Web サーバーの負荷が増大します。CGI の大きな欠点は、Web サーバーの速度に影響を与えやすいことです。 Microsoft ASP (Active Server Pages - Dynamic Server Pages) テクノロジは、IIS に組み込まれた VBScript インタープリタで構成されており、COM に基づいて、JavaScript、PerlScript、VBScript などのさまざまなスクリプト言語もサポートしています。 。 PHP は、JSP や ASP テクノロジと同様、HTML ドキュメントに配置された追加のコード タグのセットで構成されます。違いは、Web ページの開発用に設計されているため、これを使用して開発されたアプリケーションは、VBScript または JSP を使用して開発された対応するアプリケーションよりも単純であることです。 現在、すべての Web サーバーは Perl アクセラレーション ソリューションをサポートしています。 Apache の無料の mod_perl ソリューションは、Apache サーバーに Perl を組み込みます。これにより、Perl コードの解釈速度が向上するだけでなく、mod_perl キャッシュによりコードの実行効率も大幅に向上します。 Mod_perl は Apache とも密接にリンクされているため、Perl 開発者は、低レベルの Apache API プログラムを作成する C 開発者と同じように、Web サーバーの動作を制御できます。 システムの実行中、Web サーバーは多くの場合、ユーザーの集中的なクリックや動的コンテンツの需要に対応する必要があります。そのため、ハイエンドのサーバー機器であっても、増え続けるユーザーに直面すると、単位時間あたりにサポートされる訪問数は増加します。動的コンテンツのアプリケーションではデータベース データとアプリケーションを頻繁に呼び出す必要があり、大量のサーバー リソースを占有するため、特に動的コンテンツが多い状況では制限が生じます。このとき、複数のサーバー装置または複数のサイト間でサーバーの負荷を分散する必要があります。 負荷分散にはさまざまな方法がありますが、最も簡単な方法は、Web サイトのコンテンツを異なるサーバー間で分散することです。たとえば、静的な HTML ページを 1 つのサーバーに保存し、画像ファイルを別のサーバーに保存し、すべての CGI プログラムを 3 番目のサーバーで実行します。ただし、この方法があまり効率的でないことは明らかです。これは、ある側面でコンテンツが多すぎると、依然として負荷のボトルネックが形成されるためです。 DNS 負荷分散 (ドメイン ネーム サーバー) の基本的な方法は、同じサイトの異なるコピーを同じ物理サーバーに配置することです。この方法では、DNS サーバーは両方のドメイン名を返すことができます。複数の IP アドレスが同じ DNS 要求に対して異なる IP アドレスを返すこともあります。クライアントがどの IP アドレスに対応するかを判断するのは難しいため、DNS は基本的な負荷分散サービスしか提供できません。さらに、DNS リクエストはクライアントと他のサーバーのキャッシュに残るため、同じクライアントは同じ Web サーバーにアクセスし続けます。したがって、インターネットに頻繁にアクセスする多数のユーザーが 1 つの IP アドレスを使用し、インターネットにほとんどアクセスしない他のユーザーが別の IP アドレスにアクセスし、不均一な分布が発生する可能性があります。もう 1 つの問題は、DNS キャッシュが継続的にアクティブ化されないため、クライアントが Web サイトの使用中にサイトの他の IP アドレスへのアクセスを終了する可能性があることです。これは、特にクライアントからデータを受け入れて保存する必要がある場合に、動的 Web サイトで問題を引き起こす可能性があります。 ソフトウェアとハードウェアの負荷分散方法は DNS 負荷分散に似ていますが、Web サイトは IP アドレスを 1 つだけ公開し、マシンはこの IP アドレスに対する HTTP リクエストを受け入れ、これらのリクエストを Web サイトのさまざまなサーバーに分散するように特別に設定されています。この配布は通常、TCP/IP ルーティング レベルで行われ、この単一の送信元/宛先 IP アドレスを特定のサーバーに透過的にマップします。この技術