Webサーバ

Webサーバ(ウェブサーバ、英:Web server)は、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクト(画像など)の表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す。 広義には、クライアントソフトウェアとHTTPによる通信を行うプログラム及びコンピュータ。

実装

クライアントであるウェブブラウザのURLにて指示された、Webサーバ内に存在するHTMLドキュメントの各種情報を、クライアントから接続されたHTTPに則ったTCP/IPソケットストリーム(HTTPコネクションと呼ぶ)に送信する。多くの場合、クライアントのウェブブラウザとの間に複数のコネクションを張り、HTMLドキュメントとその配下の個々の情報ファイル(画像ファイル情報など)を並列して送り、処理時間を短縮してサービスを提供している。

また、HTMLドキュメントに各種処理を組み込み、CGIスクリプトやJava Servlet(サーバ側で実行されるJavaプログラム)と呼ばれるWeb画面に連動した動的処理を行う事が可能である。CGI処理においてはPerl・Ruby・PHPなどのスクリプト言語によって開発されることが多い。

Java Servletにおいては、Javaによる動的処理の負荷を分散するため、Java Servletを処理する機能を別サーバに切り出し、Webアプリケーションサーバとして、垂直分散(スケールアウト)する事も一般化している。

大規模なWebサービスを提供する場合、同じサービスを提供するWebサーバを並列して設置し、ロードバランサと呼ばれる各種ロジック(ラウンドロビン方式や処理中の負荷を計測して割り当てるサーバを決定するものや、サーバの性能を考慮して重み付けをする方式などが存在する)によりWebサーバへの処理を振り分ける装置を、Webサーバ群の前に置く事が多い。

これにより、Webサービスを提供する際のサーバ故障に対する可用性・信頼性を確保する(疎結合クラスターの一種と定義される)。

また、不特定多数のウェブブラウザ(クライアント)との接続を行うため、一般的にWebサーバ及びWebアプリケーションサーバにはDNSサーバとの連動設定を組み込む。

歴史

サン・マイクロシステムズのSOHO向けWebサーバ
Sun Cobalt Qube 3(2002年)

2015年時点においては、Apache及びその派生版である各ベンダのHTTP Serverが市場の4割、マイクロソフトのIISが市場の3割、nginxが2割弱を占める。2024年時点では、nginxが40%、Apacheが25%、Microsoftが10%弱となっている。

元々、WebサーバはUNIX上で開発され発展してきた経緯もあり、当初からオープン系サーバと言われるUNIXサーバやWindows系サーバにより実装・提供されるのが普通である。ただし、システム構成上の都合により、HTTPやFTP、TCP/IPが利用可能な汎用コンピュータにて動作させる場合もある。

現在の代表的な実装

The LAMP software bundle (here additionally with Squid). A high performance and high-availability solution for a hostile environment

他

歴史上の実装

Tux Web Server

Tux Web Server(英語版)はかつて存在した HTTP サーバの実装であり、Linuxカーネルへのパッチとして書かれていた。静的なコンテンツのみを提供することと、カーネル層で動作することから、一般的なウェブサーバより高速と言われていた。開発者は Red Hat のカーネルハッカー Ingo Molnár で、当初のバージョンは Red Hat Linux 6.2 および 7.0 向けにリリースされた。カーネル内で動作し、ストレージとネットワークの双方に対してゼロコピー(英語版)の入出力を行うことができた。2009年頃にはその役目を終え、もはや保守されなくなっていた。別名 Content Accelerator とも呼ばれていた。

個別の製品の特徴

脚注

[脚注の使い方]

出典

  1. ↑ November 2015 Web Server Survey netcraft
  2. ↑ February 2024 Web Server Survey netcraft
  3. ↑ “オープンソースの高速Webサーバー「TUX」の実力” (2005年11月16日). 2024年3月9日閲覧。
  4. ↑ “Red Hat TUX Web Server”. 2024年3月9日閲覧。
  5. ↑ “TUX 2.0 Reference Manual”. 2024年3月9日閲覧。
  6. ↑ “ASCII.jp: Red Hat、Linuxカーネル内で動作する高速Webサーバをリリース” (2000年9月4日). 2024年3月9日閲覧。
  7. ↑ “TUX installation” (2009年9月18日). 2024年3月9日閲覧。
  8. ↑ “Red Hat Content Accelerator 2.2: Reference Manual”. 2024年3月9日閲覧。

関連項目