Web
サーバは、HTTPプロトコルに基づき、クライアントであるウェブブラウザに対してHTMLファイルや画像などの資源を提供する重要な役割を担っているプログラムです。広義には、HTTPを使用して通信を行うあらゆる
ソフトウェアとその実行環境である
サーバコンピュータを含むとされます。
クライアントから送られたリクエストに基づき、Web
サーバは設定されたURLにアクセスし、対応するHTMLドキュメントや他のリソースを取得します。これらの情報はHTTPプロトコルに則ってTCP/IP経由でクライアントに送信されます。特に、ウェブブラウザは通常、同時に複数のコネクションを利用して、HTML文書とその構成要素(画像ファイルやスタイルシートなど)を同時に取得し、効率的な表示を実現します。
また、Web
サーバはCGIスクリプトやJava Servletを用いることで、動的なコンテンツ処理も行うことができます。CGIでは、主にPerlやRuby、PHPといったスクリプト言語が使用され、Java ServletではJavaを用いたプログラムが実行されます。負荷分散の観点からは、Java Servletを別の
サーバに分けて処理することも一般的に行われます。
大規模なWebサービスを展開する場合、同じ機能を持つWeb
サーバを複数台配置し、ロードバランサと呼ばれる仕組みを利用して負荷を均等に配分するのが一般的です。これにより、
サーバの障害時にも高い可用性と信頼性を確保することが可能となり、疎結合クラスターとも称されるシステムが形成されます。また、多数のクライアントとの接続をスムーズに行うため、Web
サーバはDNS
サーバとの設定連携が常に求められます。
Web
サーバの原型は
1989年に
ティム・バーナーズ=リーによって提案され、
1990年に「CERN httpd」という最初のHTTP
サーバが開発されました。さらに
1992年にはNCSA HTTPdが登場し、この
サーバに基づいたApache HTTP Serverが後の主流となります。
2015年にはApacheとその派生版が市場の約40%を占め、MicrosoftのIISが30%強、nginxが20%未満であったのに対し、2024年にはnginxが40%を占め、Apacheが25%、Microsoftが10%弱とされるなど、競争が見られます。やや歴史的な背景を持つ多数のWeb
サーバソフトウェアは、当初はUnix環境で開発され、多様な
サーバモデルとしてディストリビューションされています。
現在の主なWebサーバ実装
以下は現在の代表的なWeb
サーバのリストです。
- - Apache HTTP Server
- - Internet Information Services (IIS)
- - nginx
- - lighttpd
- - Cherokee
- - Hiawatha
- - RaidenHTTPD
- - Oracle HTTP Server
歴史に名を刻んだ実装
かつてのWeb
サーバ実装には、CERN httpdやNCSA HTTPdが存在し、特にNCSA HTTPdはその後のApacheの開発へとつながっています。これらはWeb
サーバ誕生の重要な一歩として位置付けられます。
個別製品の特徴
例えば、Oracle HTTP ServerはRDBMSベンダであるオラクルが提供しており、Java EEを利用したWebアプリケーションと密接に連携し、SQLを使用して直接HTML内にデータベース検索機能を埋め込むことができます。このように、Web
サーバは単なるコンテンツの配信だけでなく、複雑なデータ操作を行う能力も備えています。
Web
サーバは、
インターネットの心臓部とも言える存在であり、現代の情報化社会において欠かせないインフラとして進化し続けています。