#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問題]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS