Webサーバーの仕組みとは?ブラウザにページが表示されるまでを初心者向けに解説
Webサイトを開くとき、ブラウザにURLを入力するだけでページが表示されます。
しかし、その裏側ではDNSで接続先を確認したり、Webサーバーへデータを要求したりと、いくつかの処理が行われています。
「Webサーバーとは何なのか」「ブラウザからページが表示されるまで何が起きているのか」を知ると、DNSやHTTP、HTTPSなどの仕組みもつながって理解できるようになります。
Webサーバーとは?
Webサーバーとは、Webブラウザからの要求を受け取り、Webページなどのデータを返すサーバーです。
Webサイトを表示するとき、ブラウザはWebサーバーに対して、
「このページをください」
という要求を送ります。
Webサーバーはその要求を受け取り、必要なデータをブラウザへ返します。
その結果、ブラウザがHTMLやCSS、画像などを処理して、Webページとして画面に表示します。
Webサーバーは「Webページを提供する場所」
初心者の場合、Webサーバーを「Webサイトそのもの」と考えてしまうことがあります。
しかし、WebサーバーはWebサイトを構成するデータを提供する役割を持つコンピューターやソフトウェアです。
Webサイトを公開するには、こうしたサーバー上にWebページのデータなどを配置します。
ブラウザにページが表示されるまで
では、実際にWebページを開くとき、どのような流れになっているのでしょうか。
大まかには次のように進みます。
URLを入力
↓
DNSで接続先を確認
↓
Webサーバーへ接続
↓
ページを要求
↓
Webサーバーがデータを返す
↓
ブラウザがページを表示
一つずつ見ていきましょう。
1.ブラウザにURLを入力する
まず、ChromeやSafariなどのWebブラウザにURLを入力します。
たとえば、
のようなURLです。
このURLには、アクセスするWebサイトのドメイン名や通信方式などの情報が含まれています。
ブラウザは入力されたURLをもとに、どのWebサイトへ接続するのかを判断します。
2.DNSで接続先を確認する
ドメイン名だけでは、ブラウザは接続先のサーバーを直接特定できません。
そこでDNSを利用して、ドメイン名に対応するIPアドレスなどの情報を確認します。
たとえば、
example.com
というドメイン名から、対応するIPアドレスを調べるイメージです。
DNSについては、Webサイトの名前と接続先を結びつける役割があります。
つまり、
ドメイン=人間が使いやすい名前
DNS=その名前から接続先を調べる仕組み
という関係です。
3.Webサーバーへ接続する
接続先の情報が分かったら、ブラウザはWebサーバーとの通信を開始します。
HTTPSを利用するWebサイトでは、TLSによる通信の保護も行われます。
その後、ブラウザからWebサーバーへページのデータを要求します。
このときに利用されるWeb通信の基本的なルールがHTTPです。
HTTPSの場合は、HTTPによる通信がTLSによって保護されます。
4.Webサーバーが要求を受け取る
Webサーバーは、ブラウザから送られてきた要求を受け取ります。
たとえば、
「トップページを表示したい」
「この画像を取得したい」
といった要求です。
Webサーバーは要求された内容を確認し、必要なデータを返します。
5.Webサーバーからデータが返ってくる
Webページを構成するデータには、HTML、CSS、JavaScript、画像などがあります。
Webサーバーは必要なデータをブラウザへ返します。
ただし、すべてのWebページが単純に保存されたHTMLファイルを返しているとは限りません。
Webサイトによっては、サーバー側でプログラムを実行したり、データベースから情報を取得したりして、その結果をページとして返すこともあります。
6.ブラウザがWebページを表示する
サーバーから受け取ったHTMLなどのデータを、ブラウザが処理します。
HTMLによってページの構造を理解し、CSSによってデザインを適用します。
JavaScriptが使われている場合は、ブラウザ上でプログラムが実行されることもあります。
こうした処理によって、最終的に画面上へWebページが表示されます。
Webサーバーとブラウザの役割
ここまでの流れを整理すると、Webサーバーとブラウザにはそれぞれ違う役割があります。
| 役割 | 主な仕事 |
|---|---|
| ブラウザ | Webページを要求し、受け取ったデータを表示する |
| Webサーバー | ブラウザからの要求を受け、Webデータを提供する |
| DNS | ドメイン名から接続先の情報を調べる |
| Webページ | HTML・CSS・画像などで構成される |
簡単に言えば、
ブラウザ=Webページを見るためのソフト
DNS=接続先を探す仕組み
Webサーバー=Webページのデータを提供する役割
です。
Webサーバーは「サーバー」と何が違う?
「Webサーバー」と「サーバー」という言葉も混同されやすいポイントです。
サーバーとは、ネットワークを通じて他のコンピューターや利用者にサービスやデータを提供する側のコンピューターやシステムを指します。
その中でも、Webページを提供する役割を持つものがWebサーバーです。
ほかにも、
- メールサーバー
- DNSサーバー
- データベースサーバー
- ファイルサーバー
など、用途によってさまざまな種類があります。
つまり、Webサーバーは「サーバー」の一種と考えると分かりやすいでしょう。
Webサーバーにはどんなソフトが使われる?
Webサーバーとして動作する代表的なソフトウェアには、
- Nginx
- Apache HTTP Server
などがあります。
これらはWebブラウザからのHTTPリクエストを受け取り、設定に応じてWebページなどのデータを返します。
また、Webサイトの構成によっては、Webサーバーの前後にリバースプロキシやロードバランサーなどを配置することもあります。
サイトの規模が大きくなると、1台のサーバーだけですべての処理を行うのではなく、複数の役割に分けて運用するケースもあります。
静的なWebページと動的なWebページ
Webサーバーが提供するページには、大きく分けて「静的なページ」と「動的なページ」という考え方があります。
静的なWebページ
あらかじめ用意されたHTMLファイルなどを、そのままブラウザへ返すタイプです。
シンプルなWebサイトや、変更の少ないページなどで使われます。
動的なWebページ
ブラウザからの要求に応じて、サーバー側で処理を行い、その都度ページを生成するタイプです。
たとえば、ログインしているユーザーごとに表示内容を変えたり、データベースから最新の情報を取得したりするWebサイトなどがあります。
WordPressのようなCMSを使ったWebサイトも、サーバー側の処理やデータベースと連携してページを生成する仕組みが使われています。
Webサーバーとデータベースの関係
動的なWebサイトでは、Webサーバーだけですべての情報を管理しているとは限りません。
たとえばブログサイトでは、記事のタイトルや本文、ユーザー情報などをデータベースに保存していることがあります。
ブラウザからページの要求が届くと、
ブラウザ
↓
Webサーバー
↓
プログラム
↓
データベース
↓
必要なデータを取得
↓
Webサーバー
↓
ブラウザ
というように、複数の仕組みが連携する場合があります。
そのため、Webサイトの表示速度や障害を考えるときには、Webサーバーだけでなくデータベースやネットワークなども関係してきます。
Webサイトが表示されないときは何が起きている?
Webサイトが表示されないからといって、必ずWebサーバーだけに問題があるとは限りません。
たとえば、
- DNSの設定に問題がある
- ドメインの名前解決ができない
- Webサーバーが停止している
- HTTPやHTTPSの設定に問題がある
- ファイアウォールで通信が遮断されている
- データベースに問題がある
- サーバーの負荷が高くなっている
など、さまざまな原因が考えられます。
そのため、Webサイトのトラブルを調べるときは、「サーバーが落ちた」とすぐに判断するのではなく、どの段階で問題が起きているのかを切り分けることが大切です。
Webサーバーを理解すると何が分かる?
Webサーバーの仕組みを理解すると、これまで別々に見えていたIT用語がつながってきます。
たとえば、
ドメイン
→ Webサイトの名前
DNS
→ 名前から接続先を調べる
HTTPS
→ ブラウザとサーバー間の通信を保護する
Webサーバー
→ Webページのデータを提供する
データベース
→ Webサイトで利用する情報を保存・管理する
という関係です。
この全体像が分かると、サーバーやWebサイトの仕組みを学ぶときに、それぞれの技術が何のために存在するのか理解しやすくなります。
まとめ
Webサーバーは、Webブラウザからの要求を受け取り、Webページなどのデータを提供する役割を持っています。
ブラウザでWebページを開くときは、単純にサーバーへアクセスしているだけではありません。
URLを入力
→ DNSで接続先を確認
→ Webサーバーへ接続
→ ページを要求
→ Webサーバーがデータを返す
→ ブラウザがページを表示
という流れで処理が進みます。
さらに動的なWebサイトでは、Webサーバーとプログラム、データベースなどが連携しています。
まずは、**「Webサーバー=Webページを要求に応じて提供する仕組み」**と覚えておけば、今後NginxやApache、リバースプロキシ、データベースなどを学ぶときにも理解しやすくなります。
Webサーバーとは簡単にいうと何ですか?
Webブラウザからの要求を受け取り、HTMLや画像などのWebページに必要なデータを提供するサーバーです。
Webサーバーと普通のサーバーは違いますか?
Webサーバーはサーバーの一種です。サーバーにはWebサーバーのほか、DNSサーバーやメールサーバー、データベースサーバーなどがあります。
Webページはどうやって表示されますか?
一般的には、ブラウザからURLを入力し、DNSで接続先を確認した後、Webサーバーへページを要求します。Webサーバーから返されたデータをブラウザが処理して、Webページとして表示します。
NginxやApacheはWebサーバーですか?
NginxやApache HTTP Serverは、Webサーバーとして利用される代表的なソフトウェアです。Webブラウザからのリクエストを受け取り、設定に応じてWebページなどのデータを提供します。
WebサーバーがあればWebサイトを作れますか?
Webサイトを公開するためにはWebサーバーが重要ですが、サイトの構成によってはDNS、ドメイン、データベース、プログラムなど複数の仕組みが必要になります。
