HTTPリクエストを受け付け、Webコンテンツを返すサーバソフトウェア。
Webサーバとは、HTTP/HTTPSのリクエスト(要求)を受け付け、Webコンテンツを応答として返すソフトウェアのことです。HTTPはWebページをやり取りするための通信ルール(プロトコル)です。
身近な例で考えると、レストランのウェイターに似ています。お客さん(ブラウザ)が「このページがほしい」と注文(リクエスト)すると、ウェイター(Webサーバ)が用意しておいた料理(Webページ)を運んできて(レスポンス)くれます。
Webサーバはミドルウェアの一種で、私たちが毎日見ているWebサイトの「窓口」として常に動いています。ブラウザにURLを入力すると、その裏で必ずWebサーバが要求を受け取り、応答を返しています。
Webサーバが担う主な役割は次のとおりです。
・HTTPリクエストの受付:ブラウザからの要求を受け取る
・静的コンテンツの配信:HTML・CSS・画像など、あらかじめ用意したファイルをそのまま返す
・動的処理の転送:プログラムで内容を作る処理はアプリケーションサーバへ渡す
・アクセスログの記録:いつ・どこから・何が要求されたかを記録
・TLS終端:HTTPSの暗号化通信を解いて中身を受け取る
ポイントは「静的」と「動的」の使い分けです。中身が決まっている静的コンテンツはWebサーバが直接返し、利用者ごとに内容が変わる動的処理はアプリケーションサーバへ任せます。役割を分けることで、それぞれが得意な仕事に集中できます。
よく使われる代表的なWebサーバソフトウェアは次のとおりです。
・Apache HTTP Server:長年使われてきたオープンソースの定番Webサーバ
・Nginx:多数の同時アクセスを軽快にさばけるオープンソースのWebサーバ
・Microsoft IIS:Windows Serverに付属するマイクロソフト製のWebサーバ
IISは Internet Information Servicesの略です。これらは同じ「HTTPで要求を受けてコンテンツを返す」役割を持ちますが、得意分野や設定方法が少しずつ異なります。名前を見たら「Webサーバの仲間だ」と分かるようにしておきましょう。