機械用アドレスと人間用アドレス? IPアドレスとドメイン名の関係【第4回】
Webサイトには2つのアドレスがあるのをご存知でしょうか。アドレスは住所のようなもので、それぞれのWebサイトにオリジナルのアドレスがあります。
皆さんに馴染みのある、URL(Uniform Resource Locator)は以下のような形式で示されていますよね。
http://www.mils.co.jp/
このアドレスが「世界で唯一の」名前になっているので、世界中のどこからでもアドレスを指定すればサイトを見ることができるのです。
このアドレスって、どんな仕組みになっているのでしょう?
今回はドメインネームとIPアドレスについてご説明します。
リクエスト信号はどうやってサイトを探し出す?
Webページ上でリンクをクリックするとしましょう。HTMLのソースは以下のようになっています。
<a href="http://www.mils.co.jp/">株式会社ミルズ</a>
<a></a>は「アンカー」の略で、<a>と</a>にはさまれた文言がリンクとなる約束です。
ちなみに「href(エイチ・レフ)」は「Hypertext Reference ハイパーテキスト・リファレンス」の略で、ハイパーテキストの仕組みを使って参照する。つまり、リンク先を示す書式です。
このHTMLのソース部分をWebページ上でクリックすると、リクエスト信号がパソコンを飛び出し、書かれたアドレスに飛んで、指定されたデータが返ってくるようになっているわけです。
hrefに書かれた「mils.co.jp」という言葉を見れば、日本の企業でミルズという名前だと気づくかもしれません。
人間がわかりやすいように付けられた名前を「ドメインネーム」、略してドメインと言います。
今では多くの会社が独自のドメインを持っていますが、昔はドメインの値段が高かったので、自分ではドメインを持たず、プロバイダのドメインの下に独自の名前をつけていました。
http://www.example.ne.jp/~mils/
上記のようなアドレスです。今ではもう「~」(チルダ)のついたアドレスを名刺に書いている会社にはなかなかお目にかかれません。長くて覚えにくいですからね。
さて、パソコンを勢いよく飛び出したリクエスト信号ですが、実際にmils.co.jpというサイトが載っているサーバーまでどうやってたどり着くのでしょう?
「.co.jpというんだから、とりあえず日本まで行けば、あとは誰かに聞いたら何とかなるんじゃないか」なんてリクエスト君が考えていたら可愛いですが、実際にはもう少しコンピュータらしい仕組みになっています。
各Webサーバーには、それぞれの所番地がちゃんと数字で決まっています。この所番地のことを「IPアドレス」と言います。IPとはインターネットプロトコルのこと。インターネットのルールにのっとったアドレスというわけです。
HTMLソース上では人間が指定しやすいようにドメインネームで書いていますが、それぞれのドメインにはそれぞれのIPアドレスが紐づけられており、リクエスト信号は「そのドメインのIPアドレスが何で、それがどこのサーバーにあるか」を調べながらネット上を進んでいくことになります。
リクエストはどうやってIPアドレスを知る?
リクエスト信号は、先ほども述べた通り、hrefで指示されたドメインがどのIPアドレスにあるか、本当に聞き合わせながら進んでいきます。
リクエスト信号がIPをたずねる相手が「DNS」です。ドメインネームシステムの略で、IPアドレスとドメインネームの組み合わせを管理しているデータベースです。
インターネットは、どこに爆弾が落ちても大丈夫なように分散した仕組みになっています。DNSも1つの巨大なデータベースでは危険なので、世界中に分散して設置され、互いに会話して情報を伝えあっています。あるドメインのIPアドレスが何か、それぞれのDNSが知っているようになります。
といっても、DNS同士の会話で伝わっていくので、どうしても伝達のタイムラグが発生します。
あるドメインがIPアドレス1からIPアドレス2に引っ越した場合、「まだこのDNSには新しいIPアドレス2が伝わっていない」という時間があるのです。昔はのんびりしていて、「ドメインの引っ越しには1週間ぐらいかかります」なんて言っていました。
今は非常に素早く引っ越しの情報が世界中に共有されますが、それでもサーバーを移転したのに、まだ前のサーバーを見に行ってしまう、という現象は今でも起こります。
ドメインを別のサーバーに引っ越す際は、しばらく前のサーバーを維持して「Not found 見つかりません」が起こらないようにしましょう、というのはこの現象のためです。
リクエスト信号はDNSにドメインを投げて、IPアドレスを答えてもらい、そのIPアドレスに向かって進みます。時には「知らない」と言われたり、古い情報を伝えられたりしながら進んでいくのです。
DNSに聞き合わせて正解を得ることを「名前を解決する」と言います。何とも落ち着かない日本語ですね。この「解決する」は英語では「resolve(リゾルブ)」です。もう少しこなれた日本語にすれば「名前をひも解く」ぐらいの感じになるのですが、「名前をひも解くのに手間取る」では冗長ですから、ここは短く「解決する」と言うのだ、と考えてください。
見たいWebサイトの表示に手間取っている時、ブラウザの窓枠の左下に、「〇〇を解決しています…」なんてメッセージが出ることがありますから、注意して見てみてください。
ドメイン名を管理する組織をNIC(ニック)と言います。「あ、あだ名だからNICネームだな」と思いたいところですが、NICは「ネットワーク・インフォメーション・センター」の略です。残念。この略を考えた人はニヤッと笑ったのかもしれませんが。
ドメインとIPアドレスの関係
ドメインとIPアドレスの関係は、あだ名と住所のようなものです。
たとえば、使用しているWebサーバーを大阪のA社のから、北海道のB社に変えたとします。そうすると、Webサーバーが変わるのでIPアドレスが変わります。
でも、このIPアドレスとドメイン名をひもづけることによって、ドメイン名がわかれば引越し前と同様にアクセスすることができます。
これはとても人に優しい仕組みですね。ホワイトハウスのサイトが見たければ「ホワイトハウスなんだからwhitehouseだろう。アメリカ政府だから.govだろう」と当てずっぽうで「whitehouse.gov」とブラウザのアドレス欄に入力すれば、ちゃんとホワイトハウスのサイトを見ることができます。
IPアドレスなんて知らなくても良いし、ホワイトハウスのサーバーがワシントンにあるかどうかも知る必要がありません。
元のパソコンにどうやってWebのデータが届く?
リクエスト信号は世界中を旅して、DNSに聞き合わせ、目指すWebサーバーにたどり着きました。Webサーバーは「はいはい、そのアドレスはここにありますよ」とデータをサーブしてくれます。
さて、ここで問題です。
Webサーバーが送り出してくれたWebのデータは、リクエスト元のパソコンまで帰ってこなければなりません。Webサイトの独自ドメインにはIPアドレスが決まっていたかもしれませんが、単なるユーザーのパソコンを探し当てられるのはどうしてでしょう?
リクエスト信号は「往復はがき」のようなもので、返信用の住所(IPアドレス)を持って飛んでいるのです。
帰ってきたWebのデータは、返信用住所のIPアドレスに届きます。
アクセス解析では、リクエスト元のIPアドレスから、「どこのプロバイダの会員だ」「どこの会社の社員らしい」と知ることができるという仕組みです。
ちなみに返信用の住所はネットワークに接続し直すとまた別のものになるので、IPアドレスから地域や会社が分かったとしても、個人名が簡単にばれることはないのです。返信用住所があるのに個人情報が守られている。とても見事な仕組みだと思います。
インターネットの匿名性です。
もちろん、悪いことをすると警察がプロバイダに情報開示を要請し、結局個人が特定されてしまいますので、レンタル自転車で悪いことをしないように気をつけてくださいね。
パソコンに無事たどり着いたWebのデータがどんな手順でブラウザの窓に表示されるのか?
次回はその仕組みについてご説明しましょう。
「直帰率」という言葉の生みの親として知られるこの記事の筆者・石井研二氏がWeb改善の基本を解説する時間の講座を受けてみませんか?
ソーシャルもやってます!