Webサーバ


1.多彩なWebサーバ


Webサーバは、HTTPプロトコル、Webリソース管理、Webサーバ管理機能を実施します.WebサーバはTCP接続管理とオペレーティングシステムを別々に担当する.オペレーティングシステム管理コンピュータシステムのハードウェア、TCP/IPネットワークサポート、Webリソースを維持するためのファイルシステム、および現在のコンピューティングアクティビティを制御するためのプロセス管理.Webサーバには様々な形式があります.
  • マルチファンクションソフトウェアWebサーバ:マルチファンクションソフトウェアWebサーバは、ネットワークに接続された標準コンピュータシステム上で動作する.
  • imbeddy Webサーバ:imbeddy Webサーバは、消費者向けに構築された小型Webサーバです.簡単なWebブラウザインタフェースで消費機器を管理します.
  • 2.Webサーバの作業


    2.1. クライアント接続を受け入れる


    クライアントがサーバと開いた継続的な接続を維持している場合、クライアントはその接続を使用してリクエストを送信できます.そうでない場合、クライアントはサーバへの新しい接続を開く必要があります.

    クライアントホスト名の決定


    ほとんどのWebサーバは、リバースDNSを使用してクライアントのIPアドレスをクライアントホスト名に変換します.Webサーバは、クライアントホスト名を使用して、特定のアクセス制御と記録を行うことができます.ホスト名ロック(Hostname Lookup)には時間がかかる場合があります.これにより、Webトランザクションの処理速度が低下する可能性があります.そのため、多くの大規模なWebサーバでは、ホスト名解析をオフにしたり、特定のコンテンツのみに対してホスト名解析を開いたりします.

    クライアント・ユーザーをidentで識別



    一部のWebサーバでは、IETF identプロトコルもサポートされています.identプロトコルでは、サーバがHTTPコネクタを初期化したユーザー名を検索できます.この情報は、Webサーバのログ記録において特に有用であるため、一般的に使用される通常のログフォーマット(Common Log Format)の2番目のフィールドには、各HTTP要求のidentユーザ名が含まれている.identは組織内でよく使用されていますが、トランザクション時間とセキュリティのため、公共インターネット上での実行は理想的ではありません.

    2.2. 要求メッセージの受信


    データがコネクタに到着すると、Webサーバは、ネットワークコネクタからデータを取得してグループ化し、要求メッセージを構成します.

    インタフェース入出力処理アーキテクチャ


  • 単一スレッドWebサーバ:単一スレッドWebサーバは、要求を一度に処理します.
  • マルチプロセスおよびマルチスレッドWebサーバ:マルチプロセスおよびマルチスレッドWebサーバは、複数の要求を同時に処理するために複数のプロセスまたは効率的なスレッドを割り当てる.
  • マルチI/Oサーバ:マルチアーキテクチャでは、すべての接続が同時に監視されます.コネクタの状態が変化した場合は、少量の処理を行います.処理が完了すると、そのコネクタは開いているコネクタのリストに戻り、次のステータス変更を行います.
  • マルチスレッドWebサーバ:マルチスレッドと多重化を組み合わせて、コンピュータプラットフォーム上のCPUの優位性を十分に利用する.
  • 2.3. リクエスト処理


    Webサーバが要求を受信すると、サーバは要求からメソッド、リソース、タイトル、および本文を取得し、処理します.

    2.4. リソースのマッピングとアクセス


    Webサーバは、HTMLページやJPEG画像などの事前に作成されたコンテンツと、サーバ上で実行されているリソースからアプリケーションが作成した動的コンテンツを提供します.

    Docroot


    通常、Webコンテンツには、Webサーバファイルシステム内の特定のフォルダが保持されます.このフォルダをドキュメントルートまたはdocrootと呼びます.Webサーバは,要求メッセージからURIを取得し,文書ルートディレクトリに貼り付ける.サーバは、ファイルシステムのdocroot以外の部分が露出しないようにurlに対してdocrootから離れることに注意してください.
    docroot: /usr/local/httpd/filles
    요청 URL: /specials/saw-blade.gif
    서버 리소스: /usr/local/httpd/filles/specials/saw-blade.gif

    ディレクトリリスト


    Webサーバは、ディレクトリURL(パスがファイルではない)への要求を受信することができる.ほとんどのWebサーバでは、クライアントがディレクトリURLを要求するときに、次のような動作を設定できます.
    は、
  • エラーを返します.
  • ディレクトリではなく、特殊なインデックスファイルを返します.
  • ディレクトリに移動し、そのコンテンツを含むHTMLページに戻ります.
  • ダイナミックコンテンツリソースマッピング


    これらのサーバでは、アプリケーションサーバと呼ばれるサーバが、Webサーバを複雑なバックエンドアプリケーションに関連付ける役割を果たす.リソースがダイナミックリソースである場合、アプリケーション・サーバは、ダイナミック・コンテンツ生成プログラムがどこで実行されているか、プログラムを実行する方法を教えてくれる必要があります.

    サーバエンドインバウンド(Server-Side Includes.SSI)


    リソースがサーバ側のクライアントを含み接続するように設定されている場合、サーバはそのリソースの内容をクライアントに送信する前に処理します.サーバは、変数名または組み込みスクリプトとして使用できる特殊なモードがコンテンツに存在するかどうかを確認します.特殊モードは、変数値または実行可能スクリプトの出力値に変換されます.

    アクセス制御


    アクセス制御のリソース要求が到着すると、Webサーバは、クライアントのIPアドレスに基づいてアクセスを制御してもよいし、アクセスリソースのパスワードを問い合わせるようにしてもよい.

    2.5. レスポンスの作成と送信


    サーバがリソースを決定すると、サーバは要求メソッドで説明した操作を実行し、応答メッセージを返します.応答メッセージには、生成された場合、応答ステータスコード、応答ヘッダ、および応答本文が含まれます.Webサイトは、データを受信する場合と同様に、コネクタの外にデータを送信する場合にも同様の問題に直面します.サーバは接続ステータスを追跡し、継続的な接続に特に注意する必要があります.

    2.6. きろく


    最後に、トランザクションが完了すると、Webサーバはログファイルにトランザクションの状況を記録します.ほとんどのWebサーバでは、さまざまなレコード設定フォームが用意されています.

    3.ソース

  • [HTTP完全ガイド-Webがどのように動作するか]-プログラミングサイト