【Webサーバーがわかる】役割や種類などを紹介するWebサーバー入門書

初心者

Webサーバーという言葉を聞くこともあるとは思いますが、Webサーバーとは実際何の役割があるのか知ってますか?今回はWebサーバーについて初心者向けに解説していきます。

  • Webサーバーとは何か?
  • Webサーバーの役割は?
  • 今のWebサーバーの人気はどれなのか?
  • Webサーバーの種類には何があり、その特徴は?

などの疑問の解決が出来るよう、わかりやすく紹介していきます。

Webサーバーとは

Webサーバーとは、簡単に言うと『クライアントからの要求されるリクエストに対して応えるソフトウェア』のことです。

もう少し具体的に言うと、Google ChromeやFirefox、IE(Internet Explorer)やMicrosoft Edge、SafariなどのWebブラウザと言われるクライアントがWebサーバーに対して、「WebサービスやホームページなどのWebページを表示して欲しい」というリクエストを送り、それに対して適切な情報をWebサーバーからWebブラウザ(クライアント)に返している(レスポンス)ようなことをWebサーバーはしています。

当たり前に感じていることではあると思いますが、Webサーバーがその当たり前な環境を作っており、非常に重要な役割を持っています。

またこのWebサーバーは、自作で構築する場合やレンタルサーバーを活用する場合などがあります。

Web3層構成

Webサーバーの役割についてもう少し詳しく知るために、Webサービスが構築されている基本的な構成である『Web3層構成』についても説明しておきます。

Webサービスは、基本下記3つの層で構成されています。

  • Webサーバー
  • アプリケーションサーバー(APサーバー)
  • データベースサーバー(DBサーバー)

これらを合わせて『Web3層構成』と呼ばれています。

これにより負荷を分散させたり、保守的な意味でも大きな役割を持たせることが出来ます。

Webサービスの目的にもよりますが、基本的にはこの構成がほとんどです。

それではそれぞれの役割についても見ていきましょう。

Webサーバーの役割

Webサーバーは、クライアントからのリクエストに対してレスポンスをしていますが、全てWebサーバーだけで完結している訳ではありません。

誰が見ても同じ結果になるような静的コンテンツであれば、基本Webサーバーのみで対応できますが、動的コンテンツを含むリクエストへの応答が必要な場合には、Webサーバーだけで対応すると負荷が高くなりパフォーマンスが落ちる原因になってしまうため、アプリケーションサーバーにWebサーバーを経由して再度リクエストをしています。

そしてアプリケーションサーバーより返ってきたものをクライアントへ提供しています。

単純にリクエストに対応するだけではなく、このような役割もWebサーバーがになっているのです。

このようにWebサーバーはクライアントとのやり取りで最前線に立ち、自身で対応したり作業の振り分けを行っています。

リクエストや返答の流れのイメージは下記のようになっています。

クライアント⇒Webサーバー⇒(アプリケーションサーバー⇒Webサーバー⇒)クライアント

アプリケーションサーバー(APサーバー)の役割

アプリケーションサーバーは、動的コンテンツを含むリクエストの対応や業務処理を含む応答の役割も担っています。

クライアントからWebサーバーへリクエストされたものの中からアプリケーションサーバーで対応するにふさわしいものが、Webサーバーからリクエストされ、それに対しての返答をしています。

さらにデータ等の情報が必要であればデータベースサーバーへのリクエストを行い、データベースサーバーから返ってきたものを加工し、Webサーバーへ返答しています。

アプリケーションサーバーにより、Webサーバーの負荷を軽減しパフォーマンスの維持に努めています。

リクエストや返答の流れのイメージはこのようになっています。

クライアント⇒Webサーバー⇒アプリケーションサーバー⇒(データベースサーバー⇒アプリケーションサーバー⇒)Webサーバー⇒クライアント

データベースサーバー(DBサーバー)の役割

データベースサーバーは、その名の通りデータを提供する役割を持っています。

主には、アプリケーションサーバーからのリクエストに従って必要なデータを提供し、アプリケーションサーバーがこのデータを加工し、Webサーバーに返答しています。

リクエストや返答の流れのイメージは下記のようになっています。

クライアント⇒Webサーバー⇒アプリケーションサーバー⇒データベースサーバー⇒アプリケーションサーバー⇒Webサーバー⇒クライアント

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

今ではこの3層構成が主流ではありますが、それ以前は、Webサーバーとデータベースサーバーの2層構成でした。

しかしそれではWebサーバーの負荷が高くパフォーマンス低下に繋がっていたため、アプリケーションサーバーを含めた3層構成が主流になっています。

  • Webサーバー:静的コンテンツへの対応とアプリケーションサーバーへのリクエスト、クライアントへの返答
  • アプリケーションサーバー:動的コンテンツや業務処理への対応やデータベースサーバーへのリクエスト、Webサーバーへの返答

それぞれが役割を分けて対応することでパフォーマンス維持に繋がっているのです。

Webサーバーには、代表的なものとして『Apache』や『Nginx』、『IIS』などがあり、アプリケーションサーバーには、『Tomcat』や『Unicorn』などがあります。

Webサーバーのシェアランキング

それではWebサーバーで人気があるものは何なのか?現在のWebサーバーのシェアランキングのトップ10を紹介します。※アプリケーションサーバーも含まれています。

Webサーバーシェア率
1位Apache36.3%
2位Nginx32.5%
3位Cloudflare Server15.9%
4位Microsoft IIS7.8%
5位LiteSpeed7.2%
6位Google Servers1.2%
7位Node.js1.0%
8位Tengine0.2%
8位Tomcat0.2%
10位Cowboy、Kestrelなど0.1%
※2020年9月23日時点※参考:https://w3techs.com/technologies/overview/web_server

Webサーバーのシェアランキングはこのような結果になっています。

シェアランキングの1位と2位に位置するApacheとNginxは、それぞれ30%を超えるシェアを持っており非常に人気の高いWebサーバーとなっています。

この2つは企業のWebサーバーとしてはもちろん、レンタルサーバーでも活用されているWebサーバーです。

また人気なWebサーバーとして有名なMicrosoft社のIISが4位に位置付けています。

この表を見ると5位までのWebサーバーで99.7%ものシェア率になっています。

もちろんApacheとNginxを併用したりと複数のWebサーバーを使用するケースもあるため合計で100%は超えますが、5位までで多くのシェアを占めていることが分かります。

Webサーバーの種類と特徴

それでは代表的なWebサーバーの種類と特徴を紹介していきます。

Webサーバーとして有名なものはこの3つです。

  • Apache
  • Nginx
  • IIS

Apacheの特徴

Apacheは、正式名称で『Apache HTTP Server』と言い、現在最も使用されているオープンソースのWebサーバーです。

登場から20年以上経ち、長い間Webサーバーとして第一線で活躍している豊富な実績を持っています。

動的なコンテンツへの対応に高いパフォーマンスを発揮できる魅力がありますが、同時接続への対応がイマイチでC10K問題が発生してしまうデメリットもあります。

Apacheについてメリットやデメリット、単価相場などもっと詳しく知りたい方はこちらも参考にしてみてください。

【Apacheの全て】Apacheとは?特徴や資格、単価相場などを初心者向けに徹底解説
https://freelance-attack.work/column/apache/

Nginxの特徴

Nginxは、Apache同様オープンソースのWebサーバーで近年人気が高まりシェアを伸ばしています。

Apacheで問題としてあった同時接続への対応がNginxでは解消することができ、高いパフォーマンスを発揮します。

ただNginx単体ではWebサーバーとして十分な機能はなく、Apacheなどの他Webサーバーとの併用といった形で使用されるケースが多いです。

Nginxについてメリットやデメリット、単価相場などもっと詳しく知りたい方はこちらも参考にしてみてください。

【Nginxの全て】Nginxとは?特徴や資格、単価相場など初心者向けに徹底解説
https://freelance-attack.work/column/nginx/

IISの特徴

IISは、『Microsoft Internet Information Services』の略で、Microsoft Windowsの標準のWebサーバーです。

個人としてやレンタルサーバーなどには使用されることはなく、ビジネス用として広く使用され、Windowsベースでの開発で多く使用されています。

現在はWebサーバーのシェア率で4位になっていますが、このIISも非常に人気の高いWebサーバーです。

最後に

今回は、Webサーバーの仕組みや特徴、Webサーバーの種類やシェア状況について初心者向けに解説してきました。

今後Webサーバー周りを担当するエンジニアを目指す場合は、きちんと仕組みについて理解しておきましょう。

またどのソフトウェアがWebサーバーとして人気が高く需要があるのかという点も踏まえ今後の学習の参考にしてもらえればと思います。