インターネット
 Computer >> コンピューター >  >> ネットワーキング >> インターネット

ブラウザでURLにアクセスすると何が起こるのか?Web通信の基本をわかりやすく解説

この記事では、Webの世界における非常に基本的な概念について、読者の皆さんに全体像をつかんでいただきたいと思います。これまではAngularやReactの基礎といった、今日の市場で人気の話題を取り上げてきました。しかし今回は、URLにアクセスした瞬間に最初に出会うプロセスの旅へ、皆さんをご案内したいと思います。

テーマはそのものずばり——URLにアクセスすると、一体何が起こるのか?——それでは始めましょう!

URLにアクセスした後に何が起こるかを議論する前に、まずURLとは実際に何なのか、そしてURLの各部分が何を意味するのかを確認しておく必要がありますね。それでは早速、URLについて詳しく見ていきましょう。

URL – Uniform Resource Locator(統一資源位置指定子)

正式名称を見れば、その意味は自明です。URLには、アクセスしたいリソースの場所(ロケーション)が含まれています。つまり、情報を探したりやり取りしたりするために訪れたい「場所の住所」なのです。

日常生活に例えてみましょう。友人の家に用事があって訪れるとき、その住所が必要ですよね。巨大なWebの世界でも同じことで、アクセスしたいWebサイトの住所を指定する必要があります。Webサイトが家だとすれば、URLはその住所にあたります。

URLの構造

URLが何であるかは分かりましたが、まだその構成要素については知りませんね。では見ていきましょう。

次の例を使います。

https://www.example.com/page1

最初の部分は「https」です。これは基本的に、ブラウザがどのプロトコルを使用すべきかを示しています。http、https、ftpなどがあります。プロトコルとは、ブラウザがネットワーク上で通信するために使う一連のルール(規約)のことです。「https」はいわばセキュア(安全)なバージョンで、情報が安全な形でやり取りされます。

2番目の部分www.example.comドメイン名です。これは友人の家に例えられます。Webサイトの住所であり、そのWebサイトの情報を提供する責任を持つサーバー(専用に設定されたコンピュータ)にたどり着くために使われます。

待ってください!「さっきURLが住所だと言ったのに、今度はドメイン名も住所だと言っている」と混乱してしまうかもしれませんね。ご安心ください。

URLとドメイン名の違い

両者の大きな違いは、URLは完全な住所であるという点です。URLは、情報をやり取りする方法(プロトコル)や、そのWebサイトに到達してからのパスまでを伝えます。一方、ドメイン名はURLの一部です。

先ほどの例でよりよく理解しましょう。友人の家の住所がドメイン名だとすると、URLは単に友人の家の住所(ドメイン名)を伝えるだけでなく、どのようにコミュニケーションを取るか——例えば別室で話す(安全・暗号化される)のか、みんなの前で話す(情報が漏れる可能性がある)のか——ということや、家に入った後どの部屋に行くかというパス(経路)まで教えてくれます。つまり、ドメイン名はURLの一部であり、ドメイン名にさらに多くの情報を加えたものがURLなのです。

これでURLについてはクリアになったと思います。次のパートに進みましょう。

ドメイン名

前のセクションでドメイン名について説明しましたが、深くは掘り下げていませんでした。ここでもう少し踏み込みましょう。前述の通り、ドメイン名はWebサイトの住所であり、広大なWeb世界の中であなたのWebサイトに固有のアイデンティティを与えます。同じドメイン名は2つと存在できません。しかし——そう、「しかし」があります。これがドメイン名の定義のすべてではないのです。その裏にはもうひとつ物語があります。

ご存じの通り、URL(あるいはドメイン名)にアクセスすると、そのWebサイトがコンテンツとともに開きます。それを提供しているのはサーバー(専用コンピュータ)です。また、すべてのコンピュータにはインターネット上での通信に使われるIPアドレスが割り当てられていることもご存じでしょう。実は、URLにアクセスするとき、私たちは実際にはWebサイトのコンテンツを提供するコンピュータ(ホスティングサーバー)のIPアドレスにアクセスしているのです。

ここで「なんだ、全部住所じゃないか…IPアドレスがあるのに、なぜドメイン名なんてものが存在するんだ? IPアドレスを使って直接Webサイトのコンテンツを取得すればいいのでは?」と思うかもしれません。

確かに、IPアドレスを使ってWebサイトのコンテンツを取得することは可能です。しかし本当に……各Webサイトに関連付けられたIPアドレスを覚えられるでしょうか? 当然無理ですよね! すべてのWebサイトのIPアドレスを覚えるのは困難です。だからこそドメイン名が生まれたのです。

スマートフォンの連絡先に例えてみましょう。全員の電話番号は覚えられませんが、名前なら覚えられますよね。同じことがここにも当てはまります。恐ろしく長いIPアドレスは覚えられませんが、ドメイン名なら簡単に覚えられるのです。

この膨大なデータはデータベースで管理されており、ドメイン名とそのIPアドレスが保存されています。ドメイン名と対応するIPアドレスを格納するシステムはDNS(Domain Name System:ドメインネームシステム)として知られています(聞いたことがあるはずです)。

基礎については十分説明したと思いますので、URLにアクセスしたときのプロセスを深掘りしていきましょう。

DNSルックアップによるIPアドレスの解決

URLにアクセスした後、最初に行われるのは、ドメイン名に関連付けられたIPアドレスを解決することです。これを助けてくれるのがDNSです。DNSは電話帳のようなもので、電話帳が人の名前に紐づく電話番号を教えてくれるように、ドメイン名に関連付けられたIPアドレスを提供してくれます。

ブラウザでURLにアクセスすると何が起こるのか?Web通信の基本をわかりやすく解説


これが全体像ですが、実はこのドメイン名の問い合わせ(クエリ)は4つのレイヤーを通過します。ステップごとに理解しましょう。

1. URLにアクセスすると、まずブラウザのキャッシュが確認されます。ブラウザは以前訪れたWebサイトのDNSレコードを一定期間保持しているため、まずここでDNSクエリが実行され、ドメイン名に関連付けられたIPアドレスが探されます。

2. 次にDNSクエリが実行されるのはOSのキャッシュ、続いてルーターのキャッシュです。

3. 上記のステップでDNSクエリが解決されない場合、リゾルバサーバーの助けを借ります。リゾルバサーバーとは、要するにあなたのISP(インターネットサービスプロバイダ)のことです。クエリはISPに送信され、ISPのキャッシュ内でDNSクエリが実行されます。

4. 3番目のステップでも結果が見つからない場合、リクエストはDNS階層のトップ(ルート)サーバーに送られます。ここで「結果なし」と返されることは決してなく、代わりに「どこでその情報を得られるか」を教えてくれます。トップレベルドメイン(.com、.net、.gov、.orgなど)のIPアドレスを検索している場合、リゾルバサーバーに対してTLDサーバー(トップレベルドメインサーバー)を検索するよう指示します。

5. 次に、リゾルバはTLDサーバーに対象ドメイン名のIPアドレスを問い合わせます。TLDサーバーはドメイン名のアドレス情報を保管しており、リゾルバに対して権威あるネームサーバー(Authoritative Name Server)に問い合わせるよう指示します。

6. 権威あるネームサーバーは、そのドメイン名に関するあらゆる情報を把握しているサーバーです。最終的に、リゾルバ(ISP)はドメイン名に関連付けられたIPアドレスを取得し、ブラウザに送り返します。

IPアドレスを取得した後、リゾルバはそれを自身のキャッシュに保存します。こうすることで、次回同じクエリが来たときに、これらすべてのステップを再度踏むことなく、キャッシュから直接IPアドレスを提供できるのです。

以上が、ドメイン名に関連付けられたIPアドレスを解決するために行われる一連のステップです。以下の図も参考にしてください。

ブラウザでURLにアクセスすると何が起こるのか?Web通信の基本をわかりやすく解説

ブラウザによるサーバーとのTCP接続の確立

Webサイトの情報が置かれているコンピュータのIPアドレス判明すると、ブラウザはそのサーバーとの接続を開始します。ネットワーク上で通信する際にはインターネットプロトコルに従いますが、最も一般的なのはTCP/IPです。両者間の接続は「TCP 3ウェイハンドシェイク」と呼ばれるプロセスによって確立されます。簡単に見てみましょう。

1. クライアントコンピュータがSYNメッセージを送信します。これは「新しい接続を受け入れられるか?」という確認の意味です。

2. 相手のサーバーが新しい接続を受け入れ可能であれば、SYNメッセージとACK(確認応答)メッセージを一緒に返します。

3. その後、最初のコンピュータ(クライアント)がそのメッセージを受信し、ACKメッセージを送信して応答します。

よりよく理解するために、下の図をご覧ください。

ブラウザでURLにアクセスすると何が起こるのか?Web通信の基本をわかりやすく解説

通信の開始(リクエスト・レスポンスのプロセス)

ついに、クライアントとサーバーの間に接続が確立されました。これで双方が互いに通信し、情報を共有できます。接続が成功すると、ブラウザ(クライアント)は「このコンテンツが欲しい」というリクエストサーバーに送信します。サーバーはすべてのリクエストに対してどんなレスポンスを返すべきかを把握しているため、サーバーがレスポンスを返します。このレスポンスには、要求されたWebページ、ステータスコード、キャッシュ制御などのあらゆる情報が含まれています。そして、ブラウザがリクエストされたコンテンツを描画(レンダリング)します。

以上です! URLにアクセスしたときには、上記の一連のプロセスがすべて実行されています。この長いプロセスは、完了までほんの数秒もかかりません。これこそが「ブラウザでURLにアクセスすると何が起こるのか?」という質問への答えです。

お読みいただきありがとうございました!

  1. Androidでプライベートブラウジングを使うとどうなる?仕組みとおすすめアプリを徹底解説

    ブログ概要:複数のメールアカウントへのログイン、ネットバンキング、オンラインショッピング、日常のネットサーフィンなど、プライベートブラウジングを利用する理由はさまざまです。この記事では、Androidデバイスでプライベートブラウザアプリを使い、匿名性の高い安全な閲覧を実現する方法をご紹介します。 最近、スマートフォンで航空券を検索していたら、次の瞬間には旅行会社からメッセージが届いた――こんな経験はありませんか?誰もこのようなプライバシー侵害は望んでいないはずです。不要なトラッキングを避けたいなら、シークレットモード(インコグニモ)でウェブブラウザを使うことが重要です。自分のオンライン活動を

  2. 死後のオンラインアカウントはどうなる?デジタル遺産の準備方法と主要サービスの対応を徹底解説

    人は誰しも、いつか必ず死を迎えます。これは揺るぎない人生の事実です。だからこそ多くの人は、生前のうちに財産を誰に託すのか、相続人を誰にするのかを決めておくのが賢明だと考えます。しかし、そうした準備の中で見落とされがちなのが「デジタルライフ」の存在です。パソコンやインターネットにまつわる生活は、今や私たちにとって欠かせないものとなっています。 メールアカウントを作成し、FacebookやTwitterでソーシャルアカウントを開設し、Instagramに写真を投稿する――多くの人がこうした活動にかなりの時間を費やしています。これらのアカウントには重要な情報が保存されています。しかし、自分が亡くなっ