コンテンツにスキップ
X

ウェブの仕組み

ウェブの仕組みを理解することで、「なぜページが表示されないのか」「なぜHTTPSが必要なのか」「404エラーは何を意味するのか」といった疑問に自分で答えられるようになります。フロントエンド・バックエンドを問わず、すべてのウェブエンジニアに必要な基礎知識です。

対象読者: インターネットの基礎(IPアドレス・パケット通信)を理解している方

学習時間の目安: 読了 15分 + 実践 10分

前提知識: インターネットとは何か を読んでいること

WWW(World Wide Web、ウェブ)とは、インターネット上でハイパーテキスト文書(HTML)を公開・閲覧するための情報システムです。1989年にティム・バーナーズ=リーが考案し、1991年に一般公開されました。

インターネットが「道路網」だとすれば、ウェブは「その道路を走る宅配サービス」にあたります。インターネットという基盤の上で動く数あるサービスの一つです。

ウェブを構成する主要な技術は3つです。

技術役割
HTML(HyperText Markup Language)ページの構造・内容を定義するマークアップ言語
HTTP(HyperText Transfer Protocol)ブラウザとサーバーがデータをやりとりするプロトコル
URL(Uniform Resource Locator)ウェブ上のリソースの場所を示すアドレス

URLはウェブ上のリソース(ページ・画像・ファイルなど)の場所を示す住所です。

https://www.example.com:443/docs/guide?lang=ja&page=1#section2
│       │               │   │          │              │
│       │               │   │          │              └── フラグメント(ページ内アンカー)
│       │               │   │          └────────────────── クエリパラメータ
│       │               │   └───────────────────────────── パス(リソースの場所)
│       │               └───────────────────────────────── ポート番号(省略可能)
│       └───────────────────────────────────────────────── ドメイン名
└───────────────────────────────────────────────────────── スキーム(プロトコル)

各パーツの役割を整理します。

パーツ役割
スキームhttps使用するプロトコル。http または https
ドメインwww.example.comサーバーの名前(内部でIPアドレスに変換される)
ポート443サーバーの接続口の番号。HTTPSは443、HTTPは80が既定値
パス/docs/guideサーバー内のリソースの場所
クエリパラメータ?lang=ja&page=1追加情報。?から始まり&で区切る
フラグメント#section2ページ内の特定の位置(サーバーには送信されない)

HTTP(HyperText Transfer Protocol)は、ブラウザとウェブサーバーがデータをやりとりするプロトコルです。「リクエスト(要求)を送ると、レスポンス(応答)が返ってくる」というシンプルな仕組みで動いています。

HTTPS(HTTP Secure)はHTTPに暗号化(TLS/SSL)を加えたものです。通信内容が暗号化されるため、第三者が通信を盗み見ても内容が分かりません。

HTTPHTTPS
暗号化なしTLS/SSLで暗号化
ポート80443
URLの始まりhttp://https://
使用場面ローカル開発など本番環境(必須)

現在、ブラウザはHTTPのページに「保護されていない通信」と警告を表示します。ウェブサービスを公開する場合、HTTPSの使用が事実上必須となっています。

HTTPのリクエストには「何をしたいか」を示す メソッド があります。代表的なものを紹介します。

メソッド用途
GETデータの取得ページを閲覧する、検索する
POSTデータの送信・作成フォームを送信する、新規投稿する
PUTデータの更新(全体)プロフィールを更新する
PATCHデータの更新(一部)メールアドレスだけ変更する
DELETEデータの削除投稿を削除する

GETとPOSTの直感的な違い

  • GET: 「見せてください」。URLにパラメータが含まれ、ブックマークや共有ができる。副作用(データの変更)がない。
  • POST: 「送ります」。フォームデータ・パスワードなどをリクエストの本文(Body)に入れて送る。URLには表れない。
GET  /users?name=taro     # 「taro」というユーザーを検索する
POST /users               # 新しいユーザーを作成する(本文に名前・メールなどのデータ)

HTTPレスポンスには、処理の結果を示す3桁の数字 ステータスコード が含まれます。

分類範囲意味
成功200番台リクエストが正常に処理された
リダイレクト300番台別のURLへ移動が必要
クライアントエラー400番台リクエスト側の問題
サーバーエラー500番台サーバー側の問題

よく見かける代表的なコードを覚えておくと便利です。

コード名前意味
200OK成功。通常のページ表示
301Moved PermanentlyURLが恒久的に変更された
302FoundURLが一時的にリダイレクト
400Bad Requestリクエストの形式が不正
401Unauthorized認証が必要
403Forbiddenアクセス権限がない
404Not Foundリソースが見つからない
500Internal Server Errorサーバー内部エラー

ブラウザがページを表示するまでの流れ

Section titled “ブラウザがページを表示するまでの流れ”

URLを入力してEnterを押すと、以下の処理が順番に実行されます。

1. DNS解決
   ブラウザが「www.example.com」のIPアドレスをDNSサーバーに問い合わせる
   → 「203.0.113.1」というIPアドレスを取得

2. TCP接続の確立
   ブラウザがIPアドレス(203.0.113.1)のポート443にTCP接続を要求
   ※ HTTPSの場合はTLSハンドシェイク(暗号化の準備)も実行

3. HTTPリクエストの送信
   ブラウザが「GET / HTTP/1.1」などのリクエストをサーバーへ送信

4. サーバーによる処理
   サーバーがリクエストを受け取り、HTMLファイルやデータを準備

5. HTTPレスポンスの受信
   サーバーが「200 OK」とともにHTMLデータをブラウザへ返す

6. HTMLの解析(パース)
   ブラウザがHTMLを読み込み、DOM(Document Object Model)ツリーを構築

7. 追加リソースの読み込み
   HTML内で参照されているCSS・JavaScript・画像などを追加で取得

8. レンダリング(描画)
   DOM・CSSを組み合わせてページを画面に表示

この一連の流れは、高速なウェブサイトでは1秒以内に完了します。

  • WWW はインターネット上で動くHTML文書の情報システム
  • URL はスキーム・ドメイン・パス・クエリなどのパーツで構成される
  • HTTP はリクエスト/レスポンスモデルで動作し、HTTPS は通信を暗号化する
  • HTTPメソッド(GET・POST など)はリクエストの目的を示す
  • ステータスコード(200・404・500 など)はレスポンスの結果を示す

Q: http:// と https:// はどちらを使うべきですか?

A: 本番環境では常にHTTPSを使います。HTTPは通信内容が暗号化されないため、パスワードやクレジットカード番号などが第三者に盗み見られる可能性があります。現代のホスティングサービス(Vercel・Netlify など)はHTTPSを自動的に設定します。

Q: 404エラーが表示されたとき、何を確認すればよいですか?

A: まずURLのスペルミスを確認します。次にページが削除・移動されていないかを確認します。開発中であればサーバーが起動しているか、ファイルのパスが正しいかを確認します。

Q: ステータスコードは暗記する必要がありますか?

A: 100・200番台のすべてを暗記する必要はありません。200(成功)・301/302(リダイレクト)・400・401・403・404(クライアントエラー)・500(サーバーエラー)の7つを覚えておけば、実務での大半の場面に対応できます。


このページへのリンク(英語): How the Web Works