#author("2021-12-15T14:43:13+09:00","default:k1rou","k1rou") #author("2024-06-29T12:21:26+09:00","default:k1rou","k1rou") *Webサーバ [#qc7a70d5] **名称 [#pe8bcefa] -WWWサーバ **概要 [#gb8dacd4] -クライアントの[[Webブラウザ]]等からのリクエストを受けて、[[HTTP]]での[[HTML]]等のコンテンツを配信するサーバ。 -[[HTTP]]はトランスポート層として「[[TCP]]」を使う。 -デフォルトのポート番号:80 -URL、アクセス権限をチェックする。 *Webサーバのソフトウェア [#gc97c91d] -[[Apache HTTP Server]] -Apache Tomcat -[[nginx]] -Appweb -Jetty -lighttpd -LiteSpeed~ https://www.litespeedtech.com/products/litespeed-web-server *Webサーバの動作 [#e2db2bdf] **クライアント側 [#b698aecd] +Socket作成 +サーバ側のSocketと接続 +データを送受信 +Socketを切断、Socketを抹消 **サーバ側 [#f5b79744] +Socket作成 +Socketを接続待ち状態にする +クライアントからの接続を受け付ける +データを送受信 +Socketを切断、Socketを抹消 *サーバ側:「クライアントからの接続を受け付ける」のSocketの動作 [#hb69e02a] **動作の流れ [#o248b0b1] +クライアントからの接続を待つ +クライアントからの接続パケットを受信 +クライアントに応答パケットを送信 +接続待ちのSocketをコピーし、新しいSocketを作成 +作成したSocketにクライアント側の情報を記録 +コピー元のSocketは別のクライアントからの接続を待つ +新しく作成したSocketは接続したクライアントとデータを送受信する **新しく作成したSocketに記録する情報 [#j3258caf] -クライアント側のIPアドレス -クライアント側のポート番号 -サーバ側のIPアドレス -サーバ側のポート番号 *サーバ側:「データを送受信」の動作 [#pbf56b67] **動作の流れ [#ydb07b5f] +クライアントからデータを受信 +受信したデータの内容(HTTPのリクエスト・メッセージ)に従って、処理実行してHTTPのレスポンス・メッセージを作成 +レスポンス・メッセージをクライアントに送信 **HTTPのリクエスト・メッセージの内容 [#ead3cb14] -HTTPのメソッド -「[[HTTP]]」参照 *関連用語 [#hdfa5c18] -[[CGI]] -[[HTTP]] -[[TCP/IP]] -[[パケット]] -[[Keep-Alive]] -[[C10K問題]]