
6日でできる 新HTML&CSS入門|インターネットを支えるサーバ
見えないサーバの働きを知れば、インターネットの流れがもっとよく分かる。
私たちは毎日のように、スマートフォンやパソコンを使ってWebサイトを閲覧したり、メールを送受信したり、動画を視聴したりしています。
画面を操作するとすぐに結果が返ってくるため、利用者から見ると、すべての処理が自分の端末だけで行われているように感じるかもしれません。しかし実際には、インターネット上にあるさまざまなサーバと通信することで、多くのサービスが成り立っています。
たとえば、ブラウザでWebサイトを開くときには、接続先を調べるDNSサーバや、HTMLや画像などを送るWebサーバが関わっています。また、家庭や会社のネットワークに接続するときには、パソコンやスマートフォンへネットワーク設定を自動的に割り当てるDHCPサーバが働いています。
このように、インターネットでは一つのサーバがすべての処理を担当しているわけではありません。それぞれ異なる役割を持つサーバが連携しながら、利用者からの要求を受け取り、必要な情報や機能を提供しています。
サーバについて学ぶときは、高性能なコンピュータの形だけを思い浮かべるのではなく、何らかのサービスを提供する側という役割に注目することが大切です。
ここでは、サーバとクライアントの基本的な関係から、DHCPサーバ、DNSサーバ、Webサーバの働き、そしてブラウザにWebページが表示されるまでの流れを、やさしく順番に見ていきます。
サーバはサービスを提供する側
サーバとは、ネットワークを通してほかの機器やソフトウェアへ、情報や機能を提供するコンピュータ、またはソフトウェアのことです。
英語のserverには、提供するもの、仕えるものという意味があります。レストランで利用者に料理を提供するスタッフをイメージすると、サーバの役割を理解しやすくなります。
インターネット上のサーバは、利用者から送られた要求を受け取り、その内容に応じた情報や処理結果を返します。
たとえば、WebサーバはWebページを提供し、メールサーバはメールの送受信を担当します。DNSサーバはドメイン名に対応するIPアドレスを調べ、DHCPサーバはネットワークに接続した機器へIPアドレスなどの設定情報を配布します。
| 用語 | 説明 |
|---|---|
| サーバ | ネットワークを通して情報や機能を提供するコンピュータやソフトウェア |
| サービス | Webページの配信、メールの送受信、名前解決など、サーバが提供する機能 |
| リクエスト | サーバに対して送る要求 |
| レスポンス | リクエストに対してサーバが返す応答 |
サーバは、必ずしも特別な外観をした大型コンピュータとは限りません。
一般的なパソコンでも、サーバ用のソフトウェアを動かせば、Webサーバやファイルサーバとして利用できます。また、家庭用ルータのような小さな機器にも、DHCPサーバやDNSの中継機能が組み込まれています。
つまり、サーバという言葉は、機器の形や大きさよりも、サービスを提供する役割を表していると考えると分かりやすいでしょう。
クライアントはサービスを利用する側
サーバからサービスを受け取る側をクライアントといいます。
クライアントには、パソコンやスマートフォンなどの機器だけでなく、Webブラウザやメールソフトなどのソフトウェアも含まれます。
たとえば、ブラウザでWebサイトを閲覧する場合、ブラウザがクライアントとしてWebサーバにページを要求します。Webサーバは要求を受け取ると、HTMLや画像などのデータをレスポンスとして返します。
| 利用場面 | サーバ | クライアント |
|---|---|---|
| Webサイトの閲覧 | Webサーバ | Webブラウザ |
| メールの送受信 | メールサーバ | メールソフトやメールアプリ |
| ファイルの共有 | ファイルサーバ | パソコンのファイル管理ソフト |
| 動画の視聴 | 動画配信サーバ | ブラウザや動画アプリ |
| 名前解決 | DNSサーバ | パソコンやスマートフォン |
| ネットワーク設定 | DHCPサーバ | ネットワークに接続する機器 |
スマートフォンでWebメールを使う場面を考えてみましょう。
スマートフォンのブラウザはWebサーバへ画面データを要求します。メールを表示するときには、メールサーバに保存されている情報も利用されます。
この場合、スマートフォンやブラウザはサービスを利用するクライアントであり、Webページやメールを提供するコンピュータがサーバです。
サーバとクライアントは役割によって決まる
サーバとクライアントは、機器の種類だけで固定されるものではありません。
同じコンピュータでも、ある通信ではサーバになり、別の通信ではクライアントになることがあります。
たとえば、Webサーバが別のデータベースサーバへ情報を問い合わせる場合を考えてみましょう。
ブラウザとの通信では、Webサーバはサービスを提供する側です。しかし、データベースサーバへ情報を要求するときには、Webサーバ自身がクライアントとして動作します。
| 通信の組み合わせ | サーバ側 | クライアント側 |
|---|---|---|
| ブラウザとWebサーバ | Webサーバ | ブラウザ |
| Webサーバとデータベースサーバ | データベースサーバ | Webサーバ |
| パソコンとDNSサーバ | DNSサーバ | パソコン |
| パソコンとDHCPサーバ | DHCPサーバ | パソコン |
このように、サーバとクライアントはコンピュータそのものの名前ではなく、その通信でどちらがサービスを提供し、どちらが利用するかによって決まります。
図1:サーバとクライアントの基本的な関係

この図から分かること
クライアントは、利用したいサービスをサーバへ要求します。この要求がリクエストです。
サーバはリクエストの内容を確認し、必要な情報や処理結果をクライアントへ返します。この応答がレスポンスです。
Webサイトを閲覧する場合は、ブラウザがクライアントとなり、Webサーバへページを要求します。Webサーバは、要求されたHTMLや画像などをブラウザへ返します。
インターネット上のサービスは、クライアントが一方的に情報を受け取るだけではありません。クライアントから要求を送り、サーバが応答を返すという双方向のやり取りによって成り立っています。
サーバでは専用のOSやソフトウェアが動いている
サーバとして使用されるコンピュータでは、LinuxやWindows ServerなどのOSが利用されます。
OSは、CPU、メモリ、ストレージ、ネットワーク機器などを管理し、その上でサーバ用のソフトウェアを動かすための基盤になります。
| 分類 | 主な役割 |
|---|---|
| サーバ本体 | CPU、メモリ、ストレージなどを備えたコンピュータ |
| OS | ハードウェアやネットワークを管理する基本ソフトウェア |
| サーバソフトウェア | Web、メール、DNSなどのサービスを提供する |
| データ | HTML、画像、メール、利用者情報など、提供する内容 |
Webサーバであれば、LinuxやWindows Serverの上でWebサーバソフトウェアを動かします。代表的なWebサーバソフトウェアにはApache HTTP Server、Nginx、Microsoft IISなどがあります。
サーバ用のOSには、複数の利用者から同時に届く要求を安定して処理したり、長期間連続して動作したりするための機能が求められます。
そのため、一般的な利用者向けのパソコンと比べて、サーバでは次のような点が重視されます。
| 重視される点 | 内容 |
|---|---|
| 安定性 | 長時間連続してサービスを提供できること |
| 可用性 | 障害が起きてもサービスを止めにくいこと |
| 処理性能 | 多数のリクエストを処理できること |
| セキュリティ | 不正アクセスや情報漏えいを防げること |
| 保守性 | 更新、監視、バックアップなどを行いやすいこと |
ただし、学習用のWebサーバであれば、通常のパソコンや仮想マシンでも十分に構築できます。サーバの本質は大きさや価格ではなく、ネットワークを通してサービスを提供していることです。
1台のサーバで複数の機能を提供できる
サーバは、1台につき1種類のサービスしか提供できないわけではありません。
1台のコンピュータ上で、Webサーバ、DNSサーバ、ファイルサーバなど、複数のサーバソフトウェアを同時に動かすこともできます。
それぞれのサービスは、IPアドレスやポート番号などを使って通信を区別します。
ただし、多くの利用者が使う大規模なシステムでは、処理の負荷や障害の影響を分散するために、役割ごとにサーバを分けることがあります。
| 構成 | 特徴 |
|---|---|
| 1台に複数のサービスをまとめる | 機器の台数や管理コストを抑えやすい |
| 役割ごとにサーバを分ける | 負荷や障害の影響を分散しやすい |
| 同じ役割のサーバを複数用意する | 多数のアクセスへ対応しやすい |
| クラウド上に構築する | 必要に応じて性能や台数を変更しやすい |
個人の学習環境や小規模なWebサイトでは、1台のサーバに複数の役割を持たせることがあります。
一方、多くの利用者がアクセスするWebサービスでは、Webサーバを複数台用意したり、データベースサーバを別にしたりすることで、安定して処理できる構成にします。
DHCPサーバはネットワーク設定を自動で配布する
パソコンやスマートフォンがネットワーク上で通信するためには、IPアドレスなどの設定が必要です。
これらの設定を自動的に割り当てる仕組みがDHCPです。DHCPの機能を提供するサーバをDHCPサーバといいます。
家庭のWi-Fiにスマートフォンを接続すると、通常は利用者がIPアドレスを手入力しなくても、すぐにインターネットを利用できます。
これは、家庭用ルータに組み込まれたDHCPサーバ機能が、スマートフォンへ必要な設定を自動的に配布しているためです。
DHCPサーバは、主に次のような情報をクライアントへ渡します。
| 設定情報 | 役割 |
|---|---|
| IPアドレス | ネットワーク上で機器を識別する |
| サブネットマスク | 同じネットワークの範囲を判断する |
| デフォルトゲートウェイ | 外部ネットワークへ通信するときの送り先 |
| DNSサーバのアドレス | ドメイン名からIPアドレスを調べる問い合わせ先 |
| 使用期限 | 割り当てたIPアドレスを利用できる期間 |
DHCPがない環境では、利用者がそれぞれの機器に異なるIPアドレスを手動で設定しなければなりません。
このとき、複数の機器に同じIPアドレスを設定すると、通信が正常に行えなくなることがあります。また、デフォルトゲートウェイやDNSサーバの設定を間違えても、インターネットへ接続できません。
DHCPサーバを利用すれば、必要な設定をまとめて自動配布できるため、設定ミスを減らしやすくなります。
DHCPによるIPアドレス割り当ての流れ
ネットワークへ接続したばかりのクライアントは、まだ自分が使用するIPアドレスを持っていません。
そのため、ネットワーク上にDHCPサーバがないかを探し、IPアドレスの割り当てを依頼します。
一般的な流れは次のようになります。
| 手順 | 処理 |
|---|---|
| 1 | クライアントがDHCPサーバを探す |
| 2 | DHCPサーバが利用可能なIPアドレスを提案する |
| 3 | クライアントが提案されたアドレスの使用を要求する |
| 4 | DHCPサーバがIPアドレスの割り当てを確定する |
DHCPによって割り当てられるIPアドレスには、通常、一定の使用期限があります。これをリース期間といいます。
利用中の機器は、必要に応じて期限の延長を要求します。ネットワークから長期間離れた機器のIPアドレスは、別の機器へ再利用できるようになります。
これにより、限られた範囲のIPアドレスを効率よく利用できます。
DNSサーバは名前とIPアドレスを結び付ける
インターネット上で通信相手を特定するためには、IPアドレスが必要です。
しかし、人がWebサイトへアクセスするときは、通常、数字で構成されたIPアドレスではなく、www.example.comのようなドメイン名を使用します。
ドメイン名とIPアドレスを対応付ける仕組みがDNSです。その問い合わせに応答するサーバをDNSサーバといいます。
| 用語 | 説明 |
|---|---|
| ドメイン名 | 人が覚えやすいように付けられたWebサイトやサーバの名前 |
| IPアドレス | ネットワーク上で通信先を識別する番号 |
| DNS | ドメイン名とIPアドレスを対応付ける仕組み |
| DNSサーバ | ドメイン名に対応するIPアドレスなどを調べるサーバ |
| 名前解決 | ドメイン名から対応するIPアドレスを調べる処理 |
DNSは、電話帳や住所録に似た役割を持っています。
利用者は相手の名前を指定し、DNSサーバはその名前に対応するネットワーク上の住所を調べます。
たとえば、ブラウザにwww.example.comと入力すると、パソコンはDNSサーバへ、このドメイン名に対応するIPアドレスを教えてほしいという問い合わせを送ります。
DNSサーバからIPアドレスを受け取ると、ブラウザはそのアドレスを使ってWebサーバへ接続します。
DNSは複数のサーバで情報を管理している
インターネット上には非常に多くのドメイン名があるため、1台のDNSサーバだけですべての情報を管理しているわけではありません。
DNSは階層的な構造を持ち、複数のDNSサーバが役割を分担しています。
問い合わせを受けたDNSサーバが答えを持っていない場合は、ほかのDNSサーバへ順番に問い合わせながら、目的の情報を探します。
| DNSに関わる仕組み | 主な役割 |
|---|---|
| キャッシュDNSサーバ | クライアントから問い合わせを受け、必要な情報を調べる |
| ルートDNSサーバ | ドメイン名の階層をたどる最初の手掛かりを示す |
| TLD DNSサーバ | comやjpなどの領域に関する情報を管理する |
| 権威DNSサーバ | 対象ドメインの正式な情報を管理する |
一度調べた結果は、一定時間キャッシュDNSサーバやパソコンに保存されます。
同じWebサイトへ再びアクセスするときは、保存されている情報を利用できるため、毎回すべてのDNSサーバへ問い合わせる必要はありません。
この一時的な保存をDNSキャッシュといいます。
DNSキャッシュによって問い合わせ回数を減らし、Webサイトへの接続を速くできます。ただし、WebサーバのIPアドレスが変更された直後などは、古い情報が一時的に残ることもあります。
WebサーバはWebページのデータを提供する
Webサーバは、HTTPやHTTPSを使って、Webページに必要なデータをクライアントへ提供するサーバです。
ブラウザからリクエストを受け取ると、要求されたHTML、画像、動画、文書などを探し、HTTPレスポンスとして返します。
| Webサーバが提供する主なデータ | 内容 |
|---|---|
| HTML | Webページの文章や構造 |
| 画像 | 写真、イラスト、ロゴなど |
| 動画・音声 | ブラウザ上で再生するメディア |
| 文書 | PDFなどのダウンロードファイル |
| プログラムの処理結果 | 検索結果、商品情報、利用者ごとの画面など |
Webサーバに保存されたHTMLファイルをそのまま返すページを、静的なWebページといいます。
一方、ニュースサイトやショッピングサイトのように、利用者や時間によって表示内容が変わるページでは、プログラムがデータベースなどから情報を取得し、その結果をもとにHTMLを生成します。このようなページを動的なWebページといいます。
| ページの種類 | HTMLの用意方法 | 主な例 |
|---|---|---|
| 静的なWebページ | あらかじめ作成したHTMLファイルを返す | 会社案内、固定された説明ページ |
| 動的なWebページ | リクエストに応じてHTMLを生成する | 検索結果、会員ページ、通販サイト |
どちらの場合でも、ブラウザはWebサーバから返されたHTMLなどを受け取り、その内容を解析して画面に表示します。
図2:DHCP・DNS・Webサーバの役割分担

この図から分かること
Webページを表示するまでには、複数のサーバが異なる役割を担当しています。
最初にDHCPサーバが、パソコンへIPアドレス、デフォルトゲートウェイ、DNSサーバのアドレスなどを配布します。これによって、パソコンはネットワーク上で通信するための準備を整えます。
次に、ブラウザへ入力されたドメイン名に対応するIPアドレスをDNSサーバへ問い合わせます。
WebサーバのIPアドレスが分かると、ブラウザはそのWebサーバへ接続し、表示したいページを要求します。Webサーバは要求されたHTMLや画像などをレスポンスとして返します。
DHCPサーバ、DNSサーバ、Webサーバは、それぞれ別の仕事を担当しています。これらが順番に働くことで、利用者は複雑なネットワーク設定やIPアドレスを意識せずにWebサイトを閲覧できます。
Webシステムは複数の構成要素で動いている
Webシステムとは、ブラウザからWebサイトやWebサービスを利用できるようにする仕組み全体を指します。
小規模なWebサイトであれば、ブラウザとWebサーバだけの単純な構成に見えることもあります。しかし、実際にはDNSサーバ、ネットワーク機器、データベースサーバなど、複数の構成要素が関わる場合があります。
| 構成要素 | 主な役割 |
|---|---|
| クライアント | URLの入力や画面操作を受け付け、サーバへリクエストを送る |
| DHCPサーバ | クライアントへネットワーク設定を配布する |
| DNSサーバ | ドメイン名に対応するIPアドレスを調べる |
| Webサーバ | HTMLや画像などをクライアントへ返す |
| アプリケーションサーバ | プログラムを実行し、必要な処理を行う |
| データベースサーバ | 商品情報や利用者情報などを保存、検索する |
| ルータ | ネットワーク間でデータを中継する |
たとえば、オンラインショップの商品ページを表示するとき、Webサーバだけで処理が完了するとは限りません。
Webサーバがアプリケーションサーバへ処理を依頼し、アプリケーションサーバがデータベースサーバから商品名や価格、在庫数などを取得することがあります。
取得した情報からHTMLを作成し、最終的にWebサーバを通してブラウザへ返します。
利用者から見ると一つのWebページですが、その裏側では複数のサーバが連携している場合があります。
Webサーバとアプリケーションサーバの違い
Webサーバとアプリケーションサーバは、どちらもWebシステムで使われますが、担当する処理が異なります。
Webサーバは、主にブラウザからHTTPリクエストを受け取り、HTMLや画像などを返します。
アプリケーションサーバは、プログラムを実行して、検索、ログイン、購入処理などを行います。
| 比較項目 | Webサーバ | アプリケーションサーバ |
|---|---|---|
| 主な役割 | HTTPリクエストの受付とデータの配信 | Webサービスの処理を実行 |
| 主な処理 | HTMLや画像などを返す | 検索、計算、認証、登録など |
| 扱う内容 | 静的なファイルや処理結果 | プログラムや業務処理 |
| 連携先 | ブラウザ、アプリケーションサーバ | Webサーバ、データベースサーバ |
実際のシステムでは、Webサーバとアプリケーションサーバの機能が同じソフトウェアや同じコンピュータ上で動くこともあります。
学習するときは、ブラウザとの通信を受け付ける役割と、プログラムの処理を行う役割を分けて考えると理解しやすくなります。
データベースサーバはWebサービスの情報を保存する
データベースサーバは、大量のデータを整理して保存し、必要な情報を検索したり更新したりするためのサーバです。
ショッピングサイトであれば、商品名、価格、在庫数、注文情報などがデータベースに保存されます。
会員制のWebサービスでは、利用者名、メールアドレス、ログイン情報などが管理されます。
| Webサービス | データベースに保存される情報の例 |
|---|---|
| ショッピングサイト | 商品、価格、在庫、注文履歴 |
| 予約サイト | 利用者、日時、空き状況、予約内容 |
| ニュースサイト | 記事、公開日時、投稿者、分類 |
| 会員サイト | アカウント、プロフィール、利用履歴 |
| 学習サイト | 教材、問題、回答、学習状況 |
ブラウザから検索操作が行われると、アプリケーションサーバは検索条件を受け取り、データベースサーバへ問い合わせます。
データベースサーバは条件に合う情報を返し、アプリケーションサーバがその情報をブラウザ向けの表示内容へ変換します。
このように、Webシステムでは、画面を配信するサーバとデータを管理するサーバが役割を分担しています。
ブラウザへURLを入力したときの流れ
利用者がブラウザへURLを入力してからWebページが表示されるまでには、複数の処理が行われます。
大きな流れを整理すると、次のようになります。
| 手順 | 処理内容 |
|---|---|
| 1 | パソコンやスマートフォンがネットワークへ接続する |
| 2 | DHCPサーバからIPアドレスなどの設定を取得する |
| 3 | 利用者がブラウザへURLを入力する |
| 4 | DNSサーバへドメイン名を問い合わせる |
| 5 | WebサーバのIPアドレスを取得する |
| 6 | ブラウザがWebサーバへ接続する |
| 7 | ブラウザがHTTPリクエストを送る |
| 8 | Webサーバが要求されたデータを探す |
| 9 | WebサーバがHTTPレスポンスを返す |
| 10 | ブラウザが受け取ったHTMLなどを解析する |
| 11 | Webページを画面に表示する |
最初に、クライアントはネットワーク上で通信するための設定を持っている必要があります。
家庭や会社のネットワークでは、DHCPサーバからIPアドレスなどが自動的に割り当てられるのが一般的です。
次に、利用者がブラウザへURLを入力すると、DNSサーバを使って接続先のIPアドレスを確認します。
IPアドレスが分かると、ブラウザはWebサーバとの接続を開始します。HTTPSを利用するWebサイトでは、このとき暗号化通信の準備も行われます。
接続が完了すると、ブラウザは表示したいページを指定したHTTPリクエストを送信します。
Webサーバはリクエストを受け取り、要求されたHTMLなどをHTTPレスポンスとして返します。
最後にブラウザが受信したHTMLを解析し、見出し、文章、画像などを画面に配置します。
リクエストはクライアントから送られる要求
Webサーバとクライアントの通信は、基本的にクライアントからリクエストを送ることで始まります。
Webページを表示したい場合、ブラウザはWebサーバへ、指定したページを送ってほしいという要求を送信します。
HTTPで使用される代表的なリクエスト方法には、GETやPOSTがあります。
| リクエスト方法 | 主な用途 |
|---|---|
| GET | Webページやデータを取得する |
| POST | 入力フォームなどのデータをサーバへ送る |
| PUT | サーバ上のデータを更新または作成する |
| DELETE | サーバ上のデータを削除する |
Webページを閲覧するときによく使われるのがGETです。
たとえば、ブラウザからお知らせページへアクセスすると、ブラウザはWebサーバへGETリクエストを送信します。
Webサーバは指定されたページを探し、見つかった場合はHTMLを返します。
問い合わせフォームへ氏名やメッセージを入力して送信するときには、POSTが使われることがあります。
ただし、実際にどの方法を使うかはWebサイトの設計によって異なります。
レスポンスには処理結果とデータが含まれる
Webサーバは、リクエストを受け取ると、その処理結果をHTTPレスポンスとして返します。
レスポンスには、HTMLや画像などのデータだけでなく、要求が正常に処理されたかどうかを示す情報も含まれます。
代表的なHTTPステータスコードは次のとおりです。
| ステータスコード | 意味 |
|---|---|
| 200 | リクエストが正常に処理された |
| 301 | ページが別の場所へ恒久的に移動した |
| 302 | ページが一時的に別の場所へ移動している |
| 403 | アクセスが許可されていない |
| 404 | 要求されたページが見つからない |
| 500 | Webサーバ内部でエラーが発生した |
| 503 | 一時的にサービスを提供できない |
正常にページを取得できた場合は、一般的に200が返されます。
存在しないURLへアクセスした場合は、404が返されることがあります。これは、Webサーバへ接続できなかったという意味ではなく、Webサーバが要求されたページを見つけられなかったことを表しています。
500や503が返された場合は、Webサーバやその裏側の処理に問題が起きている可能性があります。
ステータスコードを理解すると、Webページが表示されない原因がクライアント側にあるのか、サーバ側にあるのかを判断しやすくなります。
HTMLを受け取ったブラウザが画面を作る
Webサーバから返されるHTMLは、完成したWebページの画像ではありません。
HTMLは、見出し、段落、一覧、リンクなど、ページ内の情報がどのような役割を持つかを示す文書です。
ブラウザは受け取ったHTMLを上から読み取り、要素同士の関係を整理して画面を組み立てます。
HTMLに画像などの読み込みが指定されている場合、ブラウザはその画像を取得するための新しいHTTPリクエストをWebサーバへ送ります。
そのため、多くのWebページでは、最初のHTMLを受け取っただけですべての通信が終了するわけではありません。
| ブラウザの処理 | 内容 |
|---|---|
| HTMLの受信 | WebサーバからHTMLデータを受け取る |
| HTMLの解析 | 見出しや段落などの構造を読み取る |
| 追加データの確認 | 画像など、別途必要なファイルを見つける |
| 追加リクエスト | 必要なファイルをWebサーバへ要求する |
| 画面の描画 | 受け取った内容を画面上に表示する |
Webページが少しずつ表示されることがあるのは、ブラウザがデータを受け取りながら、解析と画面表示を進めているためです。
Webサーバは多数のクライアントへ同時に応答する
一般に公開されているWebサイトには、複数の利用者が同じ時間帯にアクセスします。
Webサーバは、それぞれのクライアントから届くリクエストを区別し、要求されたページを返します。
アクセス数が少ないWebサイトであれば、1台のWebサーバでも処理できる場合があります。しかし、利用者が増えると、1台だけでは処理しきれなくなる可能性があります。
そのため、大規模なWebサービスでは、同じ役割を持つWebサーバを複数台用意し、リクエストを分散させます。
| 対策 | 主な目的 |
|---|---|
| サーバの性能を高くする | 1台で処理できる量を増やす |
| Webサーバを複数台にする | リクエストを分散する |
| キャッシュを利用する | 同じデータを毎回作り直す処理を減らす |
| 画像などを別サーバから配信する | Webサーバの負荷を減らす |
| データベースを分離する | データ処理の負荷を分散する |
複数のWebサーバへアクセスを振り分ける仕組みを、負荷分散といいます。
負荷分散を行う機器やソフトウェアはロードバランサと呼ばれます。
ロードバランサは、利用者からのリクエストを受け取り、比較的余裕のあるWebサーバへ振り分けます。
これにより、一部のWebサーバだけにアクセスが集中することを防ぎます。
サーバは常に利用できることが求められる
多くのインターネットサービスは、昼夜を問わず利用されます。
そのため、サーバには長時間安定して動作することが求められます。
サーバが停止すると、Webサイトが表示できなくなったり、メールを送受信できなくなったりします。
サービスをできるだけ停止させないために、さまざまな対策が行われます。
| 対策 | 内容 |
|---|---|
| 冗長化 | 同じ役割の機器や回線を複数用意する |
| バックアップ | データを別の場所へ保存する |
| 監視 | サーバの状態や通信状況を継続的に確認する |
| 更新 | OSやソフトウェアの問題を修正する |
| 障害対応 | 問題が起きたときに復旧できる手順を用意する |
| アクセス制御 | 許可された利用者や通信だけを受け付ける |
同じ機能を持つサーバを複数台用意しておけば、1台に障害が起きても、別のサーバでサービスを続けられる可能性があります。
また、データを定期的にバックアップしておけば、故障や操作ミスでデータを失ったときに復元できます。
サーバはサービスを提供するだけでなく、安全かつ安定して提供し続けるための管理も重要です。
図3:Webページ表示を支えるサーバの連携

この図から分かること
利用者が見るWebページの裏側では、複数のサーバが役割を分担して動いています。
DNSサーバはドメイン名に対応するIPアドレスを調べます。ロードバランサは、届いたリクエストを複数のWebサーバへ分散します。
WebサーバはブラウザからのHTTPリクエストを受け取り、必要に応じてアプリケーションサーバへ処理を依頼します。
アプリケーションサーバは、データベースサーバから必要な情報を取得し、ブラウザへ返す内容を作成します。
生成されたHTMLなどはWebサーバからHTTPレスポンスとして送られ、ブラウザが解析して画面へ表示します。
小規模なWebサイトでは、これらの役割を1台のサーバで担当することもあります。一方、大規模なWebサービスでは、負荷や障害の影響を分散するために、複数のサーバへ役割を分けます。
サーバが見つからない場合に起こること
Webページを表示できないときは、必ずしもWebサーバだけに問題があるとは限りません。
Webページが表示されるまでには、ネットワーク設定、DNS、通信経路、Webサーバ、アプリケーションなど、複数の仕組みが関係しています。
| 状況 | 考えられる原因 |
|---|---|
| ネットワークへ接続できない | DHCPによる設定取得の失敗、Wi-Fiの問題 |
| ドメイン名を解決できない | DNSサーバへの接続やDNS設定の問題 |
| Webサーバへ接続できない | サーバ停止、通信経路、ポート設定の問題 |
| ページが見つからない | URLやファイルの保存場所の誤り |
| サーバエラーが表示される | Webサーバやアプリケーション内部の問題 |
| 表示内容が古い | ブラウザやサーバのキャッシュが残っている |
たとえば、ドメイン名からIPアドレスを取得できなければ、ブラウザはWebサーバの場所を特定できません。
WebサーバのIPアドレスが分かっていても、Webサーバが停止していればページを取得できません。
Webサーバへ接続できても、指定したページが存在しなければ404などの応答が返されます。
このように、どの段階まで正常に処理が進んでいるかを確認すると、問題の原因を絞り込みやすくなります。
サーバを理解するとWeb制作の流れが見えやすくなる
HTMLファイルは、自分のパソコン内に保存してブラウザで開くだけでも確認できます。
しかし、作成したWebページをインターネット上へ公開する場合は、HTMLや画像などをWebサーバへ配置する必要があります。
利用者は、そのWebサーバへブラウザからアクセスし、HTMLを受け取ります。
Web制作では、HTMLの内容だけでなく、ファイルをどのサーバへ置くのか、どのURLでアクセスするのか、サーバが正常に応答しているかといった点も関係します。
| Web制作で確認する内容 | サーバとの関係 |
|---|---|
| HTMLファイルの保存場所 | Webサーバが公開できる場所へ配置する |
| ファイル名 | URLの一部として使用される場合がある |
| フォルダ構成 | Webサイト内のページや画像の場所に関係する |
| URL | Webサーバ上のデータを指定する |
| HTTPステータスコード | サーバ側の処理結果を確認できる |
| 公開設定 | 外部のクライアントからアクセスできるようにする |
サーバの役割を理解していると、ブラウザにページが表示されないときにも、HTMLの書き方だけでなく、ファイルの配置場所やURL、サーバの応答などを確認できるようになります。
インターネット上のWebページは、ブラウザだけで作られているものではありません。
クライアントからの要求、DNSによる名前解決、Webサーバからの応答、必要に応じたアプリケーションやデータベースの処理など、多くの仕組みが連携しています。
普段は画面の向こう側に隠れているサーバの働きを意識すると、Webサイトが表示されるまでの流れを、より具体的に理解できるようになります。
