WordPressのソースを見ていて、DNS PreFetch という仕組みを見つけたので、どのようなものなのか調べました。
はじめに
DNS PreFetchの説明の前に、ブラウザの動作について整理します。
ブラウザの動作について
ブラウザが①のページを表示しようとする場合、以下の処理が実行されます。
① https://blog.danroo.com/index.html
- このドメインのWebサーバ(IPアドレス)を探します。(※ ドメインの名前解決と呼びます。)
- 応答結果を受け取り、Webサーバ(IPアドレス)を特定します。
- Webサーバ(IPアドレス)に対して、ドメイン配下のパス「/test.html」のページを表示するためのデータをHTTPで要求します。
- 応答されたHTMLデータを使って、画面に描画します。
- 応答されたHTMLデータの中に画像、CSS、JavaScriptの読み込み処理がある場合は、1.から同様の処理を実行します。
この前提を理解の上、次に進みます。
DNS PreFetchとは
DNS PreFetchを利用すると、1. 2. の処理をバックグラウンドで実行してくれます。 そのため、文書中に埋め込まれたアンカーや、画像、CSS、JavaScript などの文書内で参照されている外部リソースの表示処理は、 3.から表示処理が開始されます。
このプリフェッチはバックグラウンドで行われるため、実際にリソースが必要となった際には既に名前解決が終了していることになります。 これにより、表示されるまでの待ち時間を減らすことができます。
ただ、DNS PreFetchは、httpsでは利用できないようです。 httpsが標準となっている今、利用する必要性はほとんどないのかなと思います。
利用するべきかどうか
DNS PreFetchは、httpsでは利用できないため、 利用する必要性はほとんどないと考える。