X-DNS-Prefetch-Control

X-DNS-Prefetch-Control は HTTP のレスポンスヘッダーで、 DNS 先読み、つまりユーザーが進むことができるリンクと、画像、 CSS、 JavaScript などの文書から参照される項目の両方で、ブラウザーが事前にドメイン名の解決を実行する機能を制御します。

この先読みはバックグラウンドで行われるので、参照されている項目が必要になった時に DNS が解決されている可能性が高くなります。これによって、ユーザーがリンクをクリックしたときに遅延が短縮されます。

ヘッダー種別 レスポンスヘッダー
禁止ヘッダー名 いいえ

構文

X-DNS-Prefetch-Control: on
X-DNS-Prefetch-Control: off

ディレクティブ

on
DNS 先読みを有効にします。この機能に対応しているブラウザーは、このヘッダーが存在しない場合はこの動作をします。
off
DNS 先読みを無効にします。これはページのリンクを制御しない場合や、ドメインに情報漏洩させたくないと分かる場合に有用です。

解説

DNS リクエストは帯域で見ればとても小さいものですが、遅延は、特にモバイルネットワークではとても大きいものです。 DNS の先読みを投機的に行うと、ユーザーがリンクをクリックするときなど特定の場面の遅延を著しく短縮することができます。場合によっては、遅延を秒単位で短縮することができます。

ブラウザーによってはこの先読みの実装で、ドメイン名の解決が実際のページのコンテンツの読み込みと (直後ではなく) 並列で行うことができます。これを行うことで、遅延の大きい名前解決プロセスがコンテンツの読み込みを遅らせないようにします。

ページの読み込み時間は – 特にモバイルネットワークにおいては – この方法で著しく改善できます。画像のドメイン名がリクエストに先立って解決できれば、多数の画像を読み込むページの読み込み時間に 5% 以上の改善が見られることがあります。

ブラウザーの先読みの構成

一般に、先読みを管理することを考える必要はありません。しかし、ユーザーは先読みを無効にしたいと思うかもしれません。 Firefox では、設定の network.dns.disablePrefetchtrue にすることで実現できます。

また、既定では、埋め込みリンクのホスト名の先読みは HTTPS で読み込まれた文書では実行されません。 Firefox では、設定の network.dns.disablePrefetchFromHTTPSfalse に設定することでこれを変更することができます。

先読みの有効化と無効化

You can either send the X-DNS-Prefetch-Control header server-side, or from individual documents, using the http-equiv attribute on the <meta> element, like this:

<meta http-equiv="x-dns-prefetch-control" content="off">

You can reverse this setting by setting content to "on".

特定のホスト名へのルックアップの強制

You can force the lookup of specific hostnames without providing specific anchors using that hostname by using the rel attribute on the <link> element with a link type of dns-prefetch:

<link rel="dns-prefetch" href="http://www.spreadfirefox.com/">

In this example, the domain name "www.spreadfirefox.com" will be pre-resolved.

Similarly, the link element can be used to resolve hostnames without providing a complete URL, but only, by preceding the hostname with two slashes:

<link rel="dns-prefetch" href="//www.spreadfirefox.com">

Forced prefetching of hostnames might be useful, for example, on the homepage of a site to force pre-resolution of domain names that are referenced frequently throughout the site even though they are not used on the home page itself. This will improve the overall performance of site even though the performance of the home page may not be affected.

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
X-DNS-Prefetch-Control
非標準
Chrome 完全対応 1Edge ? Firefox 完全対応 2IE ? Opera 完全対応 ありSafari ? WebView Android 完全対応 ありChrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS ? Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。

関連情報