LESSON / WP LOAD

Webサイトが表示される仕組み

ブラウザでURLを入力してから、HTTP通信、HTMLの解析、画面の描画を経てWebサイトが表示されるまでを説明します。

目安 15分 コース進捗 0 / 17

GOAL

このレッスンでできるようになること

  • DNSの役割を理解する
  • HTTPリクエスト・レスポンスを理解する
  • HTML・CSS・JavaScriptの役割を理解する
  • ブラウザがHTMLとCSSを読み取り、画面へ表示する流れを理解する

Webサイトは最初からブラウザの中に入っているわけではありません。では、なぜブラウザからWebサイトを見ることができるのでしょうか?

その理由は、ブラウザがインターネット上のWebサーバーから必要なデータを受け取り、画面を組み立てているからです。

URLを入力した後、ブラウザの中で起きていることを順番に見ていきましょう。

ブラウザでURLを入力すると通信が始まる

まず、URLを入力してからページが表示されるまでの全体的な流れを画像で確認してください。

ブラウザでURLを入力してからWebサーバーのデータが戻るまでの流れ
ブラウザでURLを入力してからWebサーバーのデータが戻るまでの流れ

ChromeやSafariなどのブラウザを起動し、アドレス欄へURLを入力してEnterキーを押すと、Webサーバーとの通信が始まります。

URLには、どの通信ルールを使い、どのWebサーバーから、どのページを取得するのかが書かれています。

https://example.com/about/
└通信のルール └接続先       └ページの場所
  • httpsは、データを暗号化して安全に通信するためのルールです。
  • example.comは、接続先のWebサイトを表すドメインです。
  • /about/は、そのWebサイト内で取得したいページを表すパスです。

ドメインから接続先を調べる

次の図では、覚えやすいドメイン名から接続先のWebサーバーを調べる関係を示しています。

ドメイン名をDNSでWebサーバーのIPアドレスへ結び付ける仕組み
ドメイン名をDNSでWebサーバーのIPアドレスへ結び付ける仕組み

インターネット上にあるWebサーバーの接続先は、192.0.2.1のようなIPアドレスで示されます。しかし、数字だけのIPアドレスを人が覚えるのは大変です。

そこで、example.comのような覚えやすいドメインを使用します。このドメインとIPアドレスを結び付ける仕組みが、DNS(Domain Name System)です。

ブラウザはDNSを使ってドメインに対応するIPアドレスを調べ、そのIPアドレスをもとにWebサーバーへ接続します。

WebサーバーからHTMLが返される仕組み

Webサーバーには、Webサイトで使用するCSS、JavaScript、画像などのファイルやデータが置かれています。HTMLは完成した静的ファイルとして置かれている場合もあれば、WordPressのようにアクセスされたときに動的に生成される場合もあります。

次の図では、「WebサーバーからHTMLが返される仕組み」の仕組みや関係を確認できます。

「WebサーバーからHTMLが返される仕組み」の仕組みや関係を示す図
「WebサーバーからHTMLが返される仕組み」の仕組みと関係

静的サイトについて

静的サイトでは、Webサーバーに保存されているHTMLファイルを、基本的にそのままブラウザへ返します。同じHTMLファイルへアクセスすると、誰が見ても同じ内容が表示されます。

ページの内容を変更するときは、HTMLファイルを編集してWebサーバーへアップロードし直します。

動的サイトについて

動的サイトでは、ブラウザからアクセスされたときに、プログラムがデータベースなどの情報を使ってHTMLを生成します。

WordPressでは、PHPがテーマやデータベースに保存された投稿内容をもとにHTMLを生成し、ブラウザへ返します。

キャッシュについて

キャッシュとは、一度生成または取得したデータを一時的に保存し、次回以降に再利用する仕組みです。

ブラウザやWebサーバーがキャッシュを使うと、同じデータを毎回生成したり取得したりする必要がなくなり、Webページを速く表示できます。

HTTPリクエスト・レスポンスについて

ブラウザとWebサーバーは、HTTP(Hypertext Transfer Protocol)という共通のルールに沿ってデータをやり取りします。

Webページを表示するまでに、この通信が必要なデータごとに繰り返されます。

ブラウザがHTTPリクエストを送る

接続先が分かると、ブラウザはWebサーバーへHTTPリクエストを送ります。HTTPリクエストとは、ブラウザからWebサーバーへ送る要求です。

たとえばhttps://example.com/about/を開いた場合は、「/about/のページをください」という要求を送ります。

ブラウザ → Webサーバー
「/about/ のページをください」

WebサーバーがHTTPレスポンスを返す

Webサーバーは要求されたページを探し、結果をHTTPレスポンスとしてブラウザへ返します。HTTPレスポンスとは、HTTPリクエストに対するWebサーバーからの応答です。

ブラウザ ← Webサーバー
「200 OK。こちらがHTMLです」

ページが見つかった場合は、正常に取得できたことを表すステータスコード200とHTMLなどを返します。ページが見つからない場合に返される代表的なステータスコードが404です。

HTTPレスポンスから必要なファイルを取得する

WebサーバーからHTTPレスポンスが返ると、ブラウザは最初にHTMLを受け取ります。HTMLには、Webページの表示に必要なCSS、JavaScript、画像などの場所が書かれています。

HTMLに書かれたファイルを追加で取得する

最初に受け取る中心的なデータがHTMLです。ブラウザはHTMLを上から読み進め、CSS、JavaScript、画像などの指定を見つけると、それぞれのファイルについてもHTTPリクエストを送ります。

<link rel="stylesheet" href="css/style.css">
<img src="images/photo.jpg" alt="">
<script src="js/main.js"></script>

このHTMLなら、ブラウザはstyle.cssphoto.jpgmain.jsもWebサーバーへ要求します。1回の通信ですべてを受け取るのではなく、ページに必要なファイルごとにリクエストとレスポンスが発生します。

この例では、HTMLを受け取った後に、CSS、画像、JavaScriptを取得するためのHTTPリクエストが追加で3回送られます。最初のHTMLを取得するリクエストも含めると、リクエストは合計4回です。

HTML・CSS・JavaScriptの役割について

Webページは、HTMLで構造と内容を作り、CSSで見た目を整え、JavaScriptで動きや処理を加えます。ここからは、それぞれが担当する役割を順番に説明します。

次の図では、「HTML・CSS・JavaScriptの役割について」の仕組みや関係を確認できます。

「HTML・CSS・JavaScriptの役割について」の仕組みや関係を示す図
「HTML・CSS・JavaScriptの役割について」の仕組みと関係

HTMLとは

HTMLは、HyperText Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の略です。見出し、文章、画像、ボタンなど、ページの構造と内容を表すマークアップ言語です。

CSSとは

CSSは、Cascading Style Sheets(カスケーディング・スタイル・シート)の略です。文字の大きさ、色、余白、配置など、ページの見た目を指定するスタイルシート言語です。

JavaScriptとは

JavaScriptは略称ではなく、JavaScript(ジャバスクリプト)が正式名称です。JSと略して書かれることがあります。クリックへの反応、表示内容の変更、データの取得など、ページの処理や動きを担当するプログラミング言語です。

取得したデータを画面へレンダリングする

ブラウザは受け取った複数のファイルを組み合わせ、最終的なWebページを画面へ描画します。

HTML、CSS、JavaScript、画像を取得してブラウザがページを描画する流れ
HTML、CSS、JavaScript、画像を取得してブラウザがページを描画する流れ

ブラウザは、受け取ったHTMLとCSSのコードを読み取り、内容をブラウザが処理できる形へ整理します。この処理をパースと呼びます。

パースが終わると、ブラウザは要素の位置や大きさ、文字や背景の見た目を計算して画面へ描画します。このように、受け取ったデータからWebページを画面へ表示するまでの処理をレンダリングと呼びます。

  1. HTMLで基本構造を作る:HTMLをもとに、見出しや文章など、Webページの基本的な構造を作ります。
  2. CSSで見た目を整える:CSSをもとに、色、文字の大きさ、余白などのスタイリングを調整します。

JavaScriptが内容や見た目を変更した場合は、その変更もブラウザの画面へ反映されます。

URL入力から表示までの全体像

  1. 自分のパソコンでブラウザを開き、URLを入力します。
  2. ブラウザがDNSを使い、ドメインに対応するIPアドレスを調べます。
  3. ブラウザがIPアドレスをもとにWebサーバーへ接続します。
  4. ブラウザがURLのパスで指定されたページをHTTPリクエストで要求します。
  5. WebサーバーがHTTPレスポンスとしてHTMLを返します。
  6. ブラウザがHTMLを読み、CSS、JavaScript、画像などを追加で取得します。
  7. ブラウザがHTMLとCSSをパースし、JavaScriptを実行します。
  8. 要素の位置や大きさ、見た目を計算してWebページを画面へ描画します。

普段は一瞬で表示されますが、ブラウザの中では通信、読み取り、計算、描画が行われています。

次の図では、「URL入力から表示までの全体像」の仕組みや関係を確認できます。

「URL入力から表示までの全体像」の仕組みや関係を示す図
「URL入力から表示までの全体像」の仕組みと関係

CHECK POINT

完了条件