From c14415346e7a5ef38c2a3896c0ad00cb8d0a046a Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 13 Jul 2021 02:50:56 +0900 Subject: Web/HTTP/Headers/X-DNS-Prefetch-Control を更新 (#1379) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - condlicting 版はこのページに統合されていると思われるため削除 - 2021/06/01 時点の英語版に同期 --- files/ja/_redirects.txt | 2 +- files/ja/_wikihistory.json | 6 -- .../http/headers/x-dns-prefetch-control/index.html | 35 ----------- .../http/headers/x-dns-prefetch-control/index.html | 69 +++++++++++----------- 4 files changed, 36 insertions(+), 76 deletions(-) delete mode 100644 files/ja/conflicting/web/http/headers/x-dns-prefetch-control/index.html diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt index ffd9ddf17c..54ec3fdc1d 100644 --- a/files/ja/_redirects.txt +++ b/files/ja/_redirects.txt @@ -683,7 +683,7 @@ /ja/docs/Code_snippets:Windows /ja/docs/Code_snippets/Windows /ja/docs/Code_snippets:XML /ja/docs/Code_snippets/XML /ja/docs/Components /ja/docs/orphaned/Components -/ja/docs/Controlling_DNS_prefetching /ja/docs/conflicting/Web/HTTP/Headers/X-DNS-Prefetch-Control +/ja/docs/Controlling_DNS_prefetching /ja/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control /ja/docs/Controlling_spell_checking_in_HTML_forms /ja/docs/Web/HTML/Global_attributes/spellcheck /ja/docs/Core_JavaScript_1.5_Guide /ja/docs/Web/JavaScript/Guide /ja/docs/Core_JavaScript_1.5_Guide/About /ja/docs/Web/JavaScript/Guide/Introduction diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json index a4a4d7cd21..6f5f7185f3 100644 --- a/files/ja/_wikihistory.json +++ b/files/ja/_wikihistory.json @@ -48611,12 +48611,6 @@ "Kohei" ] }, - "conflicting/Web/HTTP/Headers/X-DNS-Prefetch-Control": { - "modified": "2019-03-24T00:00:27.042Z", - "contributors": [ - "RobinEgg" - ] - }, "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { "modified": "2020-10-15T21:36:10.939Z", "contributors": [ diff --git a/files/ja/conflicting/web/http/headers/x-dns-prefetch-control/index.html b/files/ja/conflicting/web/http/headers/x-dns-prefetch-control/index.html deleted file mode 100644 index 25206c58f1..0000000000 --- a/files/ja/conflicting/web/http/headers/x-dns-prefetch-control/index.html +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: DNS プリフェッチの制御 -slug: conflicting/Web/HTTP/Headers/X-DNS-Prefetch-Control -original_slug: Controlling_DNS_prefetching ---- -

Firefox 3.5 では DNS prefetching が導入されました。これにより、 Firefox は文書中に埋め込まれたアンカーに加え、画像、CSS、JavaScript などの文書内で参照されている外部リソースの URL に対し、予めドメインの名前解決を行います。

-

このプリフェッチはバックグラウンドで行われるため、実際にリソースが必要となった際には既に名前解決が終了していることになります。これにより、例えばユーザーがリンクをクリックした際の待ち時間を減らすことができます。

-

背景

-

DNS による名前解決に必要な帯域幅は小さなものですが、それにかかる時間は非常に大きく、特にモバイル環境では顕著なものとなります。予め名前解決を行っておくことで、例えばユーザーがリンクをクリックした際に、ページが表示されるまでの待ち時間を大きく削減することができ、場合によっては秒単位の効果が現れる場合もあります。

-

Firefox での実装においては、実際のページコンテンツの取得と並行して DNS による名前解決が行われるため、名前解決に時間がかかっても実際のページコンテンツの取得に遅れが生じることはありません。

-

特にモバイル環境においては、 DNS プリフェッチによりページの読み込みにかかる時間が劇的に改善されます。例えば、多数の画像が表示されるページにおいて、画像が要求される前に名前解決が行われている場合では読み込み時間が 5% 以上削減されるでしょう。

-

ブラウザーでのプリフェッチ制御

-

通常、ユーザーはプリフェッチ機能に対して何ら設定する必要はありません。が、何らかの理由でプリフェッチ機能を無効にしたい場合は、 network.dns.disablePrefetchtrue に設定してください。

-

また、既定では HTTPS にて読み込まれた文書に対する埋め込みリンクのホスト名は事前に解決されないように設定されています。これを変更するにはnetwork.dns.disablePrefetchFromHTTPS false としてください。

-

コンテンツでのプリフェッチ制御

-

コンテンツ・プロバイダー側でもプリフェッチ機能をある程度制御することができます。これは、 Google Chrome が DNS プリフェッチをコントロールする 際の手法と互換性があります。

-

プリフェッチのオン・オフ

-

まず、サーバーはコンテンツの配信時に x-dns-prefetch-control HTTP ヘッダを "off" とすることで、DNS プリフェッチ機能をオプト・アウトとして(ユーザーの意志とは関係なく)実装することができます。

-

同様に個々の文書に対して制御を行うことも可能で、 meta 要素の http-equiv 属性を次のように設定することで実現できます:

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

逆に、 content 属性を "on" とすることで、プリフェッチが有効になります。

-

特定のホスト名の名前解決を強制する

-

コンテンツ・プロバイダーは、文書内にアンカーを埋め込まずとも、特定のホスト名に対する DNS の事前解決を強制することができます。これは、 link 要素に以下のように記述します:

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

この例では、 Firefox は "www.spreadfirefox.com" について、予め名前解決を行うよう試みます。

-

また、 link 要素中に必ずしも完全なアドレスを記述せずとも、ホスト名の前に二つのスラッシュを加えることで名前解決が行われます:

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

特定のホスト名について強制的に予め名前解決を行うというのは、次のような場合に有効と考えられます: トップページそのものでは参照されていないものの、サイト内の他のページでは頻繁に参照されている外部ドメインをトップページにて強制的に名前解決を行うことで、トップページ自体の速度向上は望めませんが、サイト全体でのパフォーマンス向上が期待できます。

-

参考文献

- -

 

diff --git a/files/ja/web/http/headers/x-dns-prefetch-control/index.html b/files/ja/web/http/headers/x-dns-prefetch-control/index.html index 5b698798c2..8f62529ba3 100644 --- a/files/ja/web/http/headers/x-dns-prefetch-control/index.html +++ b/files/ja/web/http/headers/x-dns-prefetch-control/index.html @@ -2,10 +2,11 @@ title: X-DNS-Prefetch-Control slug: Web/HTTP/Headers/X-DNS-Prefetch-Control tags: - - DNS - - HTTP - - X-DNS-Prefetch-Control - - header +- DNS +- HTTP +- X-DNS-Prefetch-Control +- header +browser-compat: http.headers.X-DNS-Prefetch-Control translation_of: Web/HTTP/Headers/X-DNS-Prefetch-Control ---
{{HTTPSidebar}}
@@ -15,34 +16,34 @@ translation_of: Web/HTTP/Headers/X-DNS-Prefetch-Control

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

- - - - - - - - - - + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
-

構文

+

構文

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

ディレクティブ

+

ディレクティブ

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

解説

+

解説

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

@@ -50,46 +51,46 @@ X-DNS-Prefetch-Control: off

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

-

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

+

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

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

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

-

+

-

先読みの有効化と無効化

+

先読みの有効化と無効化

次のように、サーバー側から X-DNS-Prefetch-Control ヘッダーを送信するか、個別の文書で {{ htmlattrxref("http-equiv", "meta") }} 属性を {{ HTMLElement("meta") }} 要素に設定します。

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

逆の設定をするには content を "on" にしてください。

-

特定のホスト名の参照の強制

+

特定のホスト名の参照の強制

リンク種別dns-prefetch にした {{ HTMLElement("link") }} 要素に {{ htmlattrxref("rel","link") }} 属性を使用することで、そのホスト名を使用した特定のアンカーを提供せずに、特定のホスト名を強制的に検索することができます。

-
<link rel="dns-prefetch" href="https://www.mozilla.org/contribute/">
+
<link rel="dns-prefetch" href="https://www.mozilla.org/contribute/">
 

この例では、 "www.mozilla.org/contribute" というドメイン名が事前に解決されます。

同様に、 link 要素は完全な URL を提供せずにホスト名を解決するために使用することができますが、ホスト名の前に2つのスラッシュを付けた場合だけです。

-
<link rel="dns-prefetch" href="//www.mozilla.org/contribute/">
+
<link rel="dns-prefetch" href="//www.mozilla.org/contribute/">
 

ホスト名の強制的な先読みは、例えば、あるサイトのホームページ自体では使用されていないにもかかわらず、サイト全体で頻繁に参照されるドメイン名を強制的に事前解決するために有用かもしれません。これは、ホームページの性能には影響しないかもしれませんが、サイトの全体的なパフォーマンスを向上させます。

-

ブラウザーの互換性

+

ブラウザーの互換性

-

{{Compat("http.headers.X-DNS-Prefetch-Control")}}

+

{{Compat}}

-

関連情報

+

関連情報

-- cgit v1.2.3-54-g00ecf