ブラウザとDNS:Webページ表示までの流れ
私たちがブラウザでURLを入力してWebサイトにアクセスする際、実はその裏で「DNS」と呼ばれる仕組みが重要な役割を果たしています。本記事では、たとえば Amazon の商品ページ(例:https://www.amazon.co.jp/a_merchandise
)を開こうとしたときに、ブラウザがどのようにして該当するサーバーにたどり着くのかを、DNSの仕組みを中心に解説します。
DNS(Domain Name System)とは?
インターネット上の通信は、実際には「IPアドレス」を使って行われます。たとえば 192.0.2.1
や 2606:2800:220:1:248:1893:25c8:1946
といった文字列がそれにあたります。ただし、これらの数値を覚えるのは困難なため、人間が扱いやすい「ドメイン名」という形式が使われています。
たとえば www.amazon.co.jp
と入力すれば、そのドメイン名に対応するIPアドレスをDNSが自動的に探し出してくれます。これが、DNSの基本的な役割です。つまりDNSは、「ドメイン名」から「IPアドレス」への変換装置として機能しています。
URL構造とDNSの関係
では、https://www.amazon.co.jp/a_merchandise
というURLを例に、どこがDNSに関係する部分かを見てみましょう。
URLは一般に、以下のような構造をしています。
[プロトコル]://[ホスト名(ドメイン名)]/[パス]?[クエリ]#[フラグメント]
この中で、DNSに関係するのは「ホスト名(ドメイン名)」、すなわち www.amazon.co.jp
の部分です。
ホスト名(ドメイン名)は:// のあとから最初の / までとして取得されます。
このドメイン名が、DNSサーバーに問い合わせられ、対応するIPアドレスが返されることで、初めてブラウザは正しいWebサーバーに接続できるようになります。
一方、URLの後半 /a_merchandise の部分は「パス」にあたり、実際に接続されたWebサーバーが処理する領域です。これはWebサーバー内部のファイル構造やルーティングに依存しており、DNSとは関係ありません。
DNSの解決手順
ブラウザがドメイン名をIPアドレスに変換するには、DNSリゾルバと呼ばれる仕組みを通じて、複数のDNSサーバーに問い合わせを行います。
まず、ユーザのPCやISP(インターネットサービスプロバイダ)が持つDNSリゾルバが、キャッシュにIPアドレスの情報を持っているかを確認します。もしキャッシュにない場合、次のような順序で問い合わせが行われます:
- ルートDNSサーバー:インターネット全体の出発点。ここでは「.」(ドット)に対応する情報が保持されています。
- TLD DNSサーバー:たとえば「jp」などのトップレベルドメインに対応するサーバー。※jpは日本
- セカンドレベルドメインのDNS:たとえば「co.jp」。※co.jpは日本の法人向け
- 権威DNSサーバー:最終的に「amazon.co.jp」の情報を正しく持っているDNSサーバー。
このように、DNSは階層構造になっており、「ルート」から始まり「jp」→「co.jp」→「amazon.co.jp」→「www」とたどる形で、目的のIPアドレスにたどり着きます。
名前解決の完了とWebリクエスト
最終的にIPアドレスが見つかると、それがDNSリゾルバを通じてブラウザに返されます。これによって、ブラウザははじめてそのIPアドレス宛にHTTPリクエストを送ることができるようになります。こうして、Webページの表示に必要な情報が取得され、ユーザの画面にAmazonの商品ページが表示されるのです。