Webサーバー(アプリケーション)って何?

WebサーバーとはWebブラウザ(クライアント)からリクエストがあった場合、HTMLやCSS、画像などのデータを返すサーバーのことです。通信プロトコルにはHTTP(Hypertext Transfer Protocol)が利用され、一般的には、Webブラウザで目的のURLを指定すれば、そのURLに対応するデータをクライアントに返します。

例えば、http://yahoo.co.jp/とすれば、Yahoo!のトップページの構成に必要なデータを返し、http://auctions.yahoo.co.jp/とすれば、Yahoo!オークションのデータを返します。

  • Webブラウザ(クライアント)
    • Internet Explorer、Safari、Firefox、Chromeなど

Webブラウザだけでなく、HTTPを利用するアプリケーションならWebサーバーが利用されます。例えばGmailやGoogle Mapのような特定の目的に利用されるWebサーバーをWebアプリケーションサーバーと呼びます。

実際には1つの物理サーバーにメールサーバーアプリケーションやFTPサーバーアプリケーションが一緒にインストールさていることもあり、1つの物理サーバーがWebサーバー以外の役割をすることもあります。また、複数の物理サーバーで1つのWebサーバーとして動作することもあり、必ずしもWebサーバーが1つのサーバーを指すとは限りません。

Webサーバー = 物理サーバー(1つもしくは複数)+ Webサーバーアプリケーションと言えます。

Webサーバーアプリケーション

実際にクライアント(Webブラウザなど)からのリクエストを処理するアプリケーションをWebサーバーアプリケーションと呼びます。レンタルサーバーで利用されているWebサーバーアプリケーションは、OSがUNIX系であればApache(アパッチ) HTTP Server、Windows系であればInternet Information Services(IIS)が利用されています。

Apacheは無料で利用できるオープンソースソフトウェアとなっており、大規模な商用Webサイトから個人的なWebサイトにまで幅広く利用されています。多くのOSをサポートしており、Windows、Mac、Linuxなどに対応しています。おそらくWeb関係の開発者であれば開発PCにインストールされているでしょう。

非公開のGoogle Webサーバーを除けば、Apache、IIS、Nginx(エンジンエックス)の3つで世界中のWebサーバーのシェアを占めています。少し前まではApacheのシェアが圧倒的でしたが、最近では高負荷に強いと言われるNginxの人気が高くなっています。現在のところレンタルサーバー(共用サーバー)でNginxの採用はほとんどありません。もしNginxを利用するならVPS、クラウド、専用サーバーを利用して自分で構築するしかありません。