ウェブエンジニア問題集
第4章

ネットワークの全体像 — URL入力から表示まで

5
この章の目次開く

Web開発をしていると、「なぜかサーバーに繋がらない」「DNSのキャッシュが残っている」「TCPとHTTPって何が違うの?」 といった壁に必ず当たります。

ネットワークは範囲が広いので、この本ではまず Web開発者が障害を切り分けられる粒度 を目標にします。この章は地図です。細かい話は後続の章で分けて扱います。

学習者学習者

URLを入れたらページが表示されるのは分かるけど、DNS、IP、TCP、HTTPがどの順番で出てくるのか曖昧です。

ブラウザにURLを入れてから表示されるまで

https://example.com/articles/1 にアクセスすると、裏側では大きく次の順番で処理が進みます。

流れを一文でまとめると、DNSで名前をIPに変換し、IPで相手へ届く経路を作り、TCPで信頼できる接続を張り、その上でHTTPを話す という構造です。

フェーズ主役やっていること
名前解決DNSexample.com をIPアドレスへ変換する
宛先指定IPネットワーク上の相手を指定し、経路をたどる
接続TCP / UDP通信の届け方を決める
暗号化TLSHTTPSの通信内容を暗号化する
アプリ通信HTTPリクエストとレスポンスをやりとりする

TCP/IPモデルで見る

ネットワークの説明では OSI参照モデル もよく出てきますが、実務では TCP/IPモデル でざっくり掴むと十分な場面が多いです。

TCP/IPモデル代表例Webでの役割
アプリケーション層HTTP, DNS, SSHアプリが使う通信のルール
トランスポート層TCP, UDPポート、信頼性、再送、順序制御
インターネット層IP, ICMPIPアドレスとルーティング
ネットワークインターフェース層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択クイズでアウトプットして定着させよう