【Web入門】Webサイトはなぜ見える?その仕組みを初心者向けに解説

Webサイトが表示されるまでの通信の流れを示すフロー図。ブラウザ、DNSサーバー、ルーター、Webサーバーが連携して情報をやり取りする仕組みを図解で解説。 ネットワーク
【図解】ブラウザにWebサイトが表示されるまでの「情報伝達の物語」。DNS、ルーター、サーバーが連携する仕組みを解説。

Webサイトが見える仕組みをご存じですか?

 現代社会において、インターネットは無くてはならない存在です。特にインターネットを利用し、ニュースやホームページ等のWebサイトを閲覧することは、老若男女問わず様々な場面で行っていると思います。

 ところで、ChromeやEdgeといったブラウザからWebサイトを閲覧するために、どのような仕組みがあるかご存知でしょうか?

 今回、Webの仕組みを説明するにあたり、たとえ話として本を図書館に借りに行くAさんを例に挙げて解説します。話の都合上、Aさんはとても原始的な人間で、地図やスマートフォンなどの便利グッズを持っていないということをあらかじめご承知おきください。

Aさんの図書館物語:Webの仕組みを身近な例で理解しよう

目的地を探す旅の始まり(DNSの役割)

Aさんがおまわりさんに図書館の住所を問い合わせている図
おまわりさんに図書館の名前を伝えると、住所を回答してくれました。

 物語の始まりは、Aさんが急に本が読みたくなり、図書館に行くことを決意したところから始まります。

 Aさんは図書館の名前を知っているのですが、住所を知りません。そこで、交番に行き「○○図書館に行きたいのですが、住所を教えてください」とおまわりさんに伝えます。すると、おまわりさんは「○○図書館は☆☆県△△市……です」と教えてくれます。

図書館まで移動する(インターネットとルーターの役割)

Aさんが駅員さんに図書館の行き方を教えてもらっている図。
駅員さんに住所を伝えると、向かうべき駅と何線に乗ればよいか教えてくれました。次の駅以降も同様のやりとりをします。

 目的地まで遠いことがわかったAさんは、電車に乗ることにしたようで、とりあえず最寄り駅に向かいます。
 駅に着いたAさんは、駅員さんに「☆☆県△△市……に行きたいのですが。」と伝えます。すると駅員さんは「まず□□駅に行って、そこの駅員に再度聞いてください。電車は××線に乗車してください。」と型にはまった回答をしてくれます。Aさんは案内通りに電車に乗り、到着した□□駅の駅員さんにも同じように質問をします。駅員さんは最初の駅の駅員さんと同様に、次に向かうべき駅と何線に乗ればよいかを教えてくれます。その案内に従い、Aさんは電車を乗り換え、到着した駅の駅員さんに再び質問し……、と図書館の最寄り駅まで同様のやり取りを繰り返します。
 やっとのことで、最寄り駅についたAさんは、その駅の駅員さんに図書館までの道のりを教えてもらい、図書館へ移動します。

目的の「本」を依頼する(クライアントとサーバー、リクエスト/レスポンス)

Aさんが司書さんに目的の本を探してもらっている図。
司書さんに本のタイトルを伝えたところ、本棚から目的の本を探し出してきてくれました。

 図書館にたどり着いたAさんですが、目的の本は関係者しか取り出すことができない地下の本棚に格納されているようです。そこで、司書さんに「◇◇というタイトルの本を貸してください」と伝えます。司書さんは本棚からAさんが求めている本を探し出し、Aさんに貸し出します。

Webを構成する「登場人物」を整理しよう

クライアントとサーバー:情報を要求する側と提供する側

Aさんの物語の登場人物をWebの世界の用語に置き換えた図。
WebにおいてAさんはクライアント、司書さんはWebサーバと呼ばれています。

 Web(World Wide Web)とは、今回の物語で登場した、交番や電車、図書館といった社会インフラ全体を総称した概念を、インターネットの世界で呼ぶ言葉です。

 Webの世界では、本を借りたいAさんはクライアント、本を貸し出す図書館はWebサーバと呼ばれています。

 Webにおけるクライアントとは、Webサーバと通信を行いWebページの情報を要求するものをいい、一般的にブラウザであることが多いです。
 サーバーとは、何かしらのサービスを提供するコンピュータのことで、特にWeb上でテキストや画像、動画を配布するサーバのことをWebサーバと呼びます。

WebサイトとWebページ:棚と本

 物語ではAさんから依頼を受けた司書さんは、本棚から探し出した本をAさんに貸し出しました。Webの世界において、本棚はWebサイト、本はWebページにあたります。

 複数のWebページをまとめたものWebサイトと呼び、ホームページとも呼ばれています。当サイトを例に挙げると、トップページや各記事のページ、お問い合わせページ、規約のページ等がそれぞれWebページとして存在し、それらをひとまとめにしたものがWebサイトです。

Webページを形作る3つのファイル(HTML, CSS, JavaScript)

レンダリングを説明する画像。
HTML/CSS/JavaScriptをブラウザがレンダリングして、見やすい形式に変換して表示します。

 WebページはHTMLファイル、CSSファイル、JavaScriptファイルといった、あまり馴染みの無いファイルで構成されています。

  • HTML(HyperText Markup Language)
     Webページの構造を記載するファイルです。目次や見出し、画像を入れる場所といった、内容そのものや、文章の構造のことを指しています。
  • CSS(Cascading Style Sheets)
     HTMLファイルで書かれた文章の見た目を整えるためのファイルです。フォントやサイズ、色、レイアウトなどを指定します。
  • JavaScript
     プログラミング言語の一つで、動的なWebページを作るために必要です。特定の操作(ボタンを押す、マウスを乗せるなど)で表示が変わったり、計算を行ったりするのはJavaScriptの役割です。

 HTMLやCSS、JavaScriptといったファイルは、そのままでは人間にとって読みやすくありません。ブラウザがこれらのファイルを組み立て、人間が読みやすい形式に変換してから表示しています。この変換作業をレンダリングといいます。

Webサーバの場所を特定する:DNSで名前解決

インターネット上の住所:IPアドレスとドメイン名

おまわりさんがDNSサーバであることを説明する画像。
おまわりさんはネットワークの世界ではDNSサーバです。問い合わせのあったドメイン名に紐づくIPアドレスを回答します。

 物語の冒頭Aさんは交番に行き、おまわりさんに図書館の名前を伝えて、住所を教えてもらいました。ネットワークにおいて、図書館の名前はドメイン名、住所はIPアドレスとそれぞれ呼ばれます。 

 IPアドレス0~255の数字を「.」で区切って4つならべたもので、インターネットにつながるコンピュータは唯一無二の(ユニークな)IPアドレスを持っています。(例:192.168.1.1

 ただ、このIPアドレスは例を見てわかる通り、数字の羅列であるため人間にとっては覚えやすくありません。また、IPアドレスをみただけでは、どのようなサイトであるか知ることもできません。
 ここで、IPアドレスの代わりに、覚えやすい名前(英数字と一部の記号の組み合わせ)を付けたものドメイン名です。当サイトではwww.madogiwa-engineer.comという名前を付けています。

ドメイン名に紐づくIPアドレスを教えてくれるDNSサーバー

 図書館の名前から住所を教えてくれたおまわりさんのことを、インターネットの世界ではDNSサーバと呼んでいます。DNSサーバーは、要求があった際にドメイン名に紐づいたIPアドレスを回答する役割を持っています。このようにドメイン名からIPアドレスへ変換することを名前解決といいます。

目的地まで最適経路で転送:ルーター

どうやって目的地にたどり着けばよい?:ルーターが解決

駅員さんがルータでルーティングする様子を表した画像。
ネットワークの世界では駅員さんはルーターです。目的のIPアドレスをもとに、最適な経路を判断し隣のルータにルーティングします。

 Aさんは図書館までの移動に電車を使いました。この電車での移動はインターネットに他なりません。駅員さんは、ルーターと呼ばれるネットワーク機器です。ルーターはインターネット上にあるたくさんのコンピュータがどこにあるか把握しており、目的地のIPアドレスをもとに、最適な経路を判断し、隣のルーターに通信を転送してくれます。この転送処理をルーティングと呼びます。

 物語で図書館の住所を知ったAさんは、とりあえず駅に向かいました。最初に訪れた駅の駅員さんのことを、特にネットワークの言葉でデフォルトゲートウェイと呼びます。デフォルトゲートウェイは、コンピュータがインターネットと接続する際に最初に訪れる、インターネットの入り口となるルーターのことです。

コンピュータ間の「会話のルール」:プロトコルとセキュリティ

ルールがないと会話できない!それが「プロトコル(HTTP)」

人間の司書さんは融通が利くことを示す図。
人間の司書さんは融通が利きます。

 Aさんは「◇◇というタイトルの本を貸してください。」と司書さんに伝えたところ、本を借りることができました。
 ここでもし、Aさんが本の名前を忘れてしまったとします。その場合、「最近テレビで話題になった▲▲という芸能人が書いている本を探しているのですが…。」と司書さんに伝えるかもしれません。
 おそらく現実の司書さんであれば、そのような曖昧な条件でも該当する本を探し出してくれると思います。もし、その条件だけではわからない場合でも、親切な司書さんであれば「どのテレビ番組で話題になった本でしょうか?どのようなジャンルの本かわかりますか?」といった質問をして、どうにか解決しようとしてくれることでしょう。

 これをコンピューターの世界に置き換えると、どうなるでしょうか?

プロトコルに則っていない問い合わせに、司書さんが正しく応答できていない図。
コンピュータの世界の司書さんは厳密です。どんな時でもプロトコルに従います。

 前提として、本を借りるには「◇◇というタイトルの本を貸してください。」と伝えることがルールで決まっていたとします。
 この状況で「最近テレビで話題になった▲▲という芸能人が書いている本を探しているのですが…。」といったルールにない要求や、「◇◇というタイトルの本を探しているのですが…」といった曖昧な要求では、コンピューターは回答してくれません。「そのような本はありません」とか「話の意味が分かりません」といった回答が返ってくるのが関の山です。
 コンピュータ同士の通信において、決まったルールに則った通信をすることは必須です。

 今まで「ルール」と記載し続けてきましたが、コンピュータの世界でクライアントとサーバが通信を行うときのルールを、プロトコルと呼んでいます。特にWebにおいては、HTTP(Hypertext Transfer Protocol)というプロトコルが利用されます。HTTPはHTMLやCSS、JavaScriptといったファイルを、クライアントとサーバ間でやり取りするときに利用されるプロトコルです。

 誰にも会話を聞かれたくない:HTTPSの暗号化通信で実現

HTTPSで暗号化した場合のAさんと司書さんのやり取りの図。
HTTPを暗号化したHTTPSは、通信の内容を第三者から盗聴されません。

 今回は、Aさんと司書は周りの人の目を気にせずに話をしています。ただ、もし人に聞かれたくない話をするにはどうすればよいでしょうか?

 周りに人がおらず、話を盗み聞きされない場所で一対一で話すのが一番です。しかし、インターネットは公道のようなものなので、生のデータをやり取りすると、第三者に通信を盗み見られてしまう危険性があります。

 他の手段として、Aさんと司書の2人しか理解できない言語があるとすれば解決でしますが、現実的ではありません。
 対して、コンピュータの世界ではそれに近い手法として、通信を暗号化することで通信内容を隠すことができます。
 2人しか理解できない言語を話すことも、通信を暗号化することも、他人が理解できないという点で本質的には変わりません。ただし、暗号化のほうがより高度で、解読することが困難であるという点で優れています。

 HTTPを暗号化したものHTTPS(Hypertext Transfer Protocol Secure)といいます。特に個人情報やパスワード等、他人に知られて困る情報を扱うときにはHTTPSを利用することが必須です。

【まとめ】Webサイトが表示されるまでの全手順

 最後に、Webの用語に置き換えて流れを再確認してみます。例として、当サイトのこのページを表示する流れで説明します。

Web通信一連の流れを表現した図。
これまでの話をまとめたWeb通信一連の流れです。雲はインターネットを表しています。
  1. ブラウザを開き、アドレスバーにURLを入力します。URLには、プロトコルhttps)やドメイン名(www.madogiwa-engineer.com)、どのファイル/web_Introduction)を要求するかが含まれています。
  2. ブラウザは、DNSサーバにwww.madogiwa-engineer.comのIPアドレスを問い合わせます。
  3. DNSサーバはwww.madogiwa-engineer.comのIPアドレスが160.251.177.224であると回答します。
  4. ブラウザはWebサーバに要求(HTTPリクエストと呼びます)を送信しようとします。ただ、Webサーバの場所が不明なため、デフォルトゲートウェイである、直近のルータにHTTPリクエストを転送します。
  5. ルータは、HTTPリクエストの宛先IPアドレスをもとに、最適な経路を選択し隣のルータへルーティングします。
  6. HTTPリクエストを受信した隣のルータは、同様に最適経路を判断して隣のルータへルーティングします。これを目的のWebサーバまで繰り返します。
  7. HTTPリクエストを受信したWebサーバは、要求されたファイルを探します。
  8. ファイルが見つかった場合、そのファイルをクライアントに返答しようとします(HTTPレスポンスと呼びます)。ただし、Webサーバはクライアントまでの道のりを知らず、直接通信をすることはできないので、直近のルータに送信します。
  9. 行きとは逆方向に、インターネット上にある多数のルータをたどり、ブラウザまでHTTPレスポンスを送り返します。
  10. HTTPレスポンスを受信したブラウザは、受信したファイルを組み立てて、ブラウザ上に見やすい形式にレンダリングして、表示します。

終わりに

 原始的なAさんの物語を通して、Webサイトが皆さんの画面に表示されるまでに、DNSルーターWebサーバーたちが複雑に連携していることがお分かりいただけたかと思います。

 さらに詳細に学びたい方は、以下の記事もご参照ください。

タイトルとURLをコピーしました