第4章
ネットワークの全体像 — URL入力から表示まで
約5分
Web開発をしていると、「なぜかサーバーに繋がらない」「DNSのキャッシュが残っている」「TCPとHTTPって何が違うの?」 といった壁に必ず当たります。
ネットワークは範囲が広いので、この本ではまず Web開発者が障害を切り分けられる粒度 を目標にします。この章は地図です。細かい話は後続の章で分けて扱います。
学習者URLを入れたらページが表示されるのは分かるけど、DNS、IP、TCP、HTTPがどの順番で出てくるのか曖昧です。
ブラウザにURLを入れてから表示されるまで
https://example.com/articles/1 にアクセスすると、裏側では大きく次の順番で処理が進みます。
流れを一文でまとめると、DNSで名前をIPに変換し、IPで相手へ届く経路を作り、TCPで信頼できる接続を張り、その上でHTTPを話す という構造です。
| フェーズ | 主役 | やっていること |
|---|---|---|
| 名前解決 | DNS | example.com をIPアドレスへ変換する |
| 宛先指定 | IP | ネットワーク上の相手を指定し、経路をたどる |
| 接続 | TCP / UDP | 通信の届け方を決める |
| 暗号化 | TLS | HTTPSの通信内容を暗号化する |
| アプリ通信 | HTTP | リクエストとレスポンスをやりとりする |
TCP/IPモデルで見る
ネットワークの説明では OSI参照モデル もよく出てきますが、実務では TCP/IPモデル でざっくり掴むと十分な場面が多いです。
| TCP/IPモデル | 代表例 | Webでの役割 |
|---|---|---|
| アプリケーション層 | HTTP, DNS, SSH | アプリが使う通信のルール |
| トランスポート層 | TCP, UDP | ポート、信頼性、再送、順序制御 |
| インターネット層 | IP, ICMP | IPアドレスとルーティング |
| ネットワークインターフェース層 | Ethernet, Wi-Fi, ARP | 同一ネットワーク内で実際に届ける |
大事なのは、HTTPだけ見ても通信全体は分からない という点です。HTTPリクエストが失敗していても、原因はDNS、TCP、TLS、ファイアウォール、アプリケーションのどこにでもありえます。
この本でのネットワーク章の読み方
このページ以降は、次の順で分割しています。
HTTPのメソッド、ステータスコード、ヘッダー、Cookie、REST API設計は、より詳しく HTTPとWeb API で扱っています。この本では、HTTPを「ネットワーク全体の中でどこに乗っているか」という視点で扱います。
実務でよくある「繋がらない」の正体
「繋がらない」は、具体的には複数の失敗に分解できます。
| 症状 | ありえる原因 |
|---|---|
| ドメインが見つからない | DNSレコードがない、ネームサーバー設定が違う |
| 古いサーバーに繋がる | DNSキャッシュ、TTLが長い |
| IPには届くがポートに繋がらない | サーバー停止、ポート違い、ファイアウォール |
| HTTPSだけ失敗する | 証明書期限切れ、SNI、TLS設定 |
| HTTPステータスが4xx/5xx | アプリケーション、認証、API設計の問題 |
ちゃんと使うためのポイント
- Web通信は DNS → IP → TCP/TLS → HTTP の順に積み上がる
- 「サーバーに繋がらない」は、DNS・経路・ポート・TLS・HTTPのどこかで失敗している
- HTTPの詳細は HTTPとWeb API に分け、ここではネットワーク全体の位置づけを押さえる
- 以降の章では、IP、DNS、TCP/UDP、HTTP、切り分けの順に分解して学ぶ
次の章では、通信相手を指定するための IPアドレスとルーティング を扱います。
CS基礎クイズに挑戦するこの章で学んだCS基礎の知識を、4択クイズでアウトプットして定着させよう
