ブラウザはアドレスバーに入力された URL をどのように処理しますか?
特定の URL をブラウザで開くとき、ブラウザはどのようにコンテンツを読み込み表示するのでしょうか?イベントが発生する順序に従って、ブラウザが行ったことを順を追って説明します。
カスタムネイティブアプリで特定の web 閲覧を行う場合を除いて、ほとんどの web ページはブラウザで閲覧されます。では、特定の URL をブラウザで開いたとき、ブラウザはどのようにコンテンツを読み込み表示するのでしょうか?イベントが発生する順序に従って、ブラウザがどのように動作したかを示していきます。
ユーザーがブラウザに URL を入力
前回の ブログ投稿 では、ホスト/ドメイン(例: www.google.com
blog.logto.io
など)を含む URL の構成要素について説明しました。
ホスト/ドメインを使用した IP アドレスの検索
ブラウザはホスト/ドメインを直接理解して、対応するリソースを見つけることはできません。 web ページに必要なリソースの場所を特定するために、特定の IP アドレスを知る必要があります。
ブラウザはドメインネームシステム(DNS)を介してホスト/ドメインに対応する IP アドレスを見つけます。
IP アドレスを検索するプロセスを可能な限り高速にするために、ホスト/ドメインと IP アドレスの対応関係は、ブラウザキャッシュ、オペレーティングシステムキャッシュなど、さまざまなキャッシュを使用します。
キャッシュ検索が成功しない場合、通常の DNS 検索プロセスを介して、ホスト/ドメインの IP アドレスを見つけます。これらは以下の手順です:
- ユーザーが web ブラウザに
blog.logto.io
を入力すると、 web ブラウザは DNS サービスに対して IP アドレスを要求し、対応するクエリは DNS リゾルバによって受信されます - DNS リゾルバは DNS ルートサーバー(.)をクエリします
- ルートサーバーは、トップレベルドメイン(TLD)DNS サーバー(この場合
.io
)に対応するアドレスといくつかの関連情報を返します - DNS リゾルバは
.io
TLD サーバーをクエリします .io
TLD サーバーはlogto.io
ネームサーバーアドレスを応答します- DNS リゾルバは
logto.io
ドメインネームサーバーを要求します logto.io
ドメインネームサーバーはblog.logto.io
アドレスを応答します- DNS リゾルバは
blog.logto.io
IP アドレスを web ブラウザに転送します
その後、web ブラウザはサーバーから対応するリソースを要求して、ユーザーが閲覧できるようにウェブサイトをレンダリングします。
TCP 接続の確立
DNS サービスを介して閲覧するドメインに対応する IP アドレスを取得した後、web ブラウザはサーバーとの TCP 接続を開始し確立します。
リソースの取得とウェブページのレンダリング
TCP 接続を確立した後、ブラウザはサーバーにネットワークリクエストを送信し、対応するリソースを取得し、取得したリ ソースに基づいてウェブページコンテンツをレンダリングし、ユーザーが閲覧できるようにします。