Webの仕組み — ブラウザからサーバーまで何が起きているか
ブラウザのアドレスバーにURLを入力してEnterを押すと、一瞬でページが表示されます。しかしその裏側では、複数のサーバーとの通信が何段階にもわたって行われています。
この章では、Webの通信がどんな手順で進むのかを「全体の地図」として整理します。個々の技術は後の章で掘り下げるので、ここではまず流れの全体像を掴みます。
学習者URLを入れてEnterを押すだけでページが出るけど…裏で何が起きてるのか、実はまったく分かってない。
ブラウザからページが表示されるまでの流れ
大きく分けると 3つのフェーズ で進みます。
- 名前解決(DNS) — ドメイン名をIPアドレスに変換する
- 接続確立(TCP) — サーバーとの通信路を確保する
- データのやりとり(HTTP) — リクエストを送り、レスポンスを受け取る
この「DNS → TCP → HTTP」の順番は、Web開発のトラブルシューティングでも切り分けの基本になります。
フェーズ1: 名前解決 — DNSの役割

ブラウザは example.com という文字列のままでは通信できません。実際に通信するには、サーバーの IPアドレス(例: 93.184.216.34)が必要です。
この「ドメイン名 → IPアドレス」の変換を行うのが DNS(Domain Name System) です。電話帳で名前から電話番号を調べるようなものです。
example.com → DNSに問い合わせ → 93.184.216.34
DNSの結果は一定時間 キャッシュ されます。ブラウザ、OS、ルーターなど複数のレイヤーにキャッシュが存在し、毎回DNSサーバーまで問い合わせるわけではありません。
フェーズ2: 接続確立 — TCPの役割
IPアドレスがわかったら、次はサーバーとの 通信路 を確保します。Web通信では TCP(Transmission Control Protocol) が使われます。
TCPは通信を始める前に「3ウェイハンドシェイク」と呼ばれる手順でお互いの準備を確認します。
このハンドシェイクによって、データが確実に、正しい順序で届く ことが保証されます。Webページは1バイトでも欠けるとHTMLやCSSが壊れるため、この信頼性が重要です。
フェーズ3: データのやりとり — HTTPの役割
TCP接続が確立したら、いよいよ HTTP(HyperText Transfer Protocol) でデータをやりとりします。
HTTPは「リクエスト → レスポンス」の1往復が基本です。
ブラウザ → サーバー: GET /index.html HTTP/1.1
サーバー → ブラウザ: HTTP/1.1 200 OK + HTMLの中身
HTMLを受け取ったブラウザは、その中に書かれたCSS・JavaScript・画像の参照を見つけて、それぞれ追加のHTTPリクエストを送ります。1つのページを表示するために、数十回のHTTPリクエストが飛ぶのは普通です。
URLの構造を分解する
HTTPリクエストの宛先となるURLは、いくつかのパーツで構成されています。
https://api.example.com:443/users/1?fields=name,email#profile
| パーツ | 値 | 意味 |
|---|---|---|
| スキーム | https | 通信プロトコル |
| ホスト | api.example.com | サーバーのドメイン名 |
| ポート | 443 | 接続先のポート番号(HTTPS既定は443) |
| パス | /users/1 | サーバー上のリソースの位置 |
| クエリ | ?fields=name,email | 追加のパラメータ |
| フラグメント | #profile | ページ内の位置(サーバーには送られない) |
Web APIの設計ではこの中の パス と クエリ を特によく使います。「リソースの特定はパスで、フィルタや並び順はクエリで」というのがREST APIの基本的な考え方です。
HTTPSとセキュリティ
現代のWebでは、HTTPではなく HTTPS が標準です。HTTPSは、HTTPの通信を TLS(Transport Layer Security) で暗号化したものです。
| HTTP | HTTPS | |
|---|---|---|
| 通信 | 平文(暗号化なし) | TLSで暗号化 |
| ポート | 80 | 443 |
| ブラウザ表示 | 「保護されていない通信」と警告 | 鍵マーク表示 |
HTTPSがないと、通信経路上の第三者がリクエストの中身(パスワード、Cookie、APIレスポンスなど)を盗聴・改ざんできてしまいます。開発環境でもHTTPS化が推奨されるのはそのためです。
まとめ
Webの通信は DNS → TCP → HTTP の3段階で進みます。
- DNS でドメイン名をIPアドレスに変換する
- TCP で信頼性のある通信路を確立する
- HTTP でリクエストとレスポンスをやりとりする
- HTTPS はHTTPをTLSで暗号化したもので、現代のWebでは必須
この全体像を押さえておくと、「サーバーに繋がらない」「レスポンスがおかしい」といったトラブルのとき、どの層で問題が起きているかを切り分けられるようになります。
次の章では、HTTPの中核である HTTPメソッド(GET・POST・PUT・DELETE)の使い分けを詳しく見ていきます。