はじめに
この記事を書く目的は、自分がURLについて理解を深めることが目的です。なので、深くまで掘り下げることはせず、ブラウザがURLを解読してIPアドレスを取得するまでの流れをざっくりと見ていきます。
参考: ネットワークはなぜつながるのか
この本の第一章の一部を自分なりに解釈して説明していきますので、この記事の情報が絶対ではないことをご了承ください。
ブラウザがURLを解読する
URLを解読する理由は、どこにアクセスすべきかを判明させるためです。具体的には、webサーバーのドメイン名とファイル名を判明させるためです。では、僕のホームページのURLを例に見ていきます。
http:
:プロトコル名
www.kuhara-cookie.com
:webサーバのドメイン名
index.html
:ファイル名
ざっくりですがこのような構造になっています。
http:
はHTTPプロトコルを指しているのですが、HTTPプロトコルとは、Webサーバとクライアントが情報をやりとりする時に使われる通信手順です。僕の中の解釈では、目的地に行くためにバス、電車、タクシーのどの移動手段を使うかを決めている箇所だと考えています。
HTTPリクエスト・メッセージを作成する。
このメッセージを作成する目的は、Webサーバにしてほしい動作を決めるためです。なので、リクエスト・メッセージには「何を」「どうして」ほしいのかが書かれています。
「何を」に当たるものがURI
「どうして」に当たるものがメソッド
URIはURLと同じようなものだと考えていても(たぶん)問題ないと思います。
参考:https://wa3.i-3-i.info/word1815.html
メソッドは、例えば、GET
やPOST
などで、HTMLファイルのform
タグの中に書くやつです。
リクエストメッセージをOSに依頼する。
OSに依頼する理由は、ブラウザはURLの解読とHTTPのメッセージの作成の機能を持っていますが、メッセージを送信する機能は持っていないからです。しかし、これではまだメッセージを送信することはできません。なので、ここでWebサーバのドメイン名からIPアドレスを割り出す必要があります。ここからIPアドレスの取得方法を見ていきます。
IPアドレスを利用する理由は、ドメイン名を利用するよりもサーバーへの負荷が少なく、データを運ぶ効率がいいからです。
リゾルバを利用して、DNSサーバに問い合わせる。
DNSサーバとは、ドメイン名とIPアドレスの翻訳機のような役割のシステムです。
リゾルバとは、翻訳機(DNSサーバ)を利用してIPアドレスを知るために聞きに行ってくれるやつです。
IPアドレスを知るためには、担当のDNSサーバを探す必要があります。
担当のDNSサーバを探し出す方法は、手紙を順に見つ出していくゲームのようなイメージです。
僕のホームページのURLを例にすると、
PC
↓
最寄りのDNSサーバ
↓
ルートドメイン
↓
com
のDNSサーバに手がかりを聞く
↓
kuhara-cookie
のDNSサーバに手がかりを聞く
↓
担当のDNSサーバがIPアドレスを教えてくれる。
ざっくりとですがこのような仕組みになっています。
この方法により、IPアドレスを取得することができました。
これでOSに「割り出したIPアドレス先にメッセージを送って」と依頼することができます。
最後に
これでもネットワークがつながる基礎知識の一部分みたいですが、理解するのにかなりの時間がかかりました。ですが、普段何も考えずに利用しているブラウザやネットワークの仕組みを知ることで、ネットワークの偉大さを感じることができました。
今後も少しずつ理解を進めていこうと思います。