X-DNS-Prefetch-Control
Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.
Der HTTP X-DNS-Prefetch-Control
Response-Header steuert das DNS-Prefetching, eine Funktion, bei der Browser proaktiv die Domainnamen-Auflösung für Links durchführen, denen der Benutzer möglicherweise folgen möchte, sowie für URLs von Elementen, die im Dokument referenziert werden, einschließlich Bilder, CSS, JavaScript usw.
Ziel ist, dass das Prefetching im Hintergrund erfolgt, sodass die DNS-Auflösung abgeschlossen ist, wenn die referenzierten Elemente vom Browser benötigt werden. Dies reduziert die Latenz, wenn der Benutzer beispielsweise auf einen Link klickt.
Header-Typ | Response-Header |
---|---|
Verbotener Header-Name | Nein |
Syntax
X-DNS-Prefetch-Control: on
X-DNS-Prefetch-Control: off
Direktiven
on
-
Aktiviert DNS-Prefetching. Dies ist das Verhalten von Browsern, wenn sie diese Funktion unterstützen und der Header nicht vorhanden ist.
off
-
Deaktiviert DNS-Prefetching. Dies ist nützlich, wenn Sie keine Kontrolle über die Links auf den Seiten haben oder wenn Sie wissen, dass Sie keine Informationen an diese Domains weiterleiten möchten.
Beschreibung
DNS-Anfragen sind in Bezug auf die Bandbreite sehr klein, aber die Latenz kann ziemlich hoch sein, insbesondere in Mobilfunknetzen. Durch spekulatives Prefetching von DNS-Ergebnissen kann die Latenz zu bestimmten Zeiten signifikant reduziert werden, wie z.B. wenn der Benutzer auf einen Link klickt. In einigen Fällen kann die Latenz um eine Sekunde reduziert werden.
Die Implementierung dieses Prefetchings in einigen Browsern ermöglicht die parallele Domainnamensauflösung (anstatt seriell) mit dem Abrufen von tatsächlichen Seiteninhalten. Dadurch verursacht der hochlatenzartige Domainnamensauflösungsprozess keine Verzögerung beim Abrufen von Inhalten.
Seitenladezeiten – insbesondere in Mobilfunknetzen – können auf diese Weise messbar verbessert werden. Wenn die Domänennamen für Bilder vor dem Anfordern der Bilder aufgelöst werden können, können Seiten, die viele Bilder laden, eine Verbesserung der Ladezeiten um 5% oder mehr feststellen.
Konfigurieren des Prefetchings im Browser
Im Allgemeinen müssen Sie nichts tun, um Prefetching zu verwalten. Der Benutzer kann jedoch Prefetching deaktivieren. In Firefox kann dies durch Setzen der network.dns.disablePrefetch
-Einstellung auf true
erfolgen.
Außerdem wird das Prefetching von eingebetteten Link-Hostnamen standardmäßig nicht bei Dokumenten durchgeführt, die über HTTPS geladen werden. In Firefox kann dies geändert werden, indem die network.dns.disablePrefetchFromHTTPS
-Einstellung auf false
gesetzt wird.
Beispiele
Aktivierung und Deaktivierung des Prefetchings
Sie können den X-DNS-Prefetch-Control
-Header serverseitig senden oder von einzelnen Dokumenten unter Verwendung des http-equiv
Attributs auf dem <meta>
Element setzen, wie folgt:
<meta http-equiv="x-dns-prefetch-control" content="off" />
Sie können diese Einstellung rückgängig machen, indem Sie content
auf "on"
setzen.
Erzwingen der Suche nach bestimmten Hostnamen
Sie können die Suche nach bestimmten Hostnamen erzwingen, ohne spezifische Anker zu diesen Hostnamen bereitzustellen, indem Sie das rel
-Attribut auf dem <link>
Element mit einem Link-Typ von dns-prefetch
verwenden:
<link rel="dns-prefetch" href="https://www.mozilla.org" />
In diesem Beispiel wird der Domainname www.mozilla.org
vorher aufgelöst.
Ähnlich kann das Link-Element verwendet werden, um Hostnamen zu lösen, ohne eine vollständige URL bereitzustellen, sondern nur durch Voranstellen des Hostnamens mit zwei Schrägstrichen:
<link rel="dns-prefetch" href="//www.mozilla.org" />
Erzwungenes Prefetching von Hostnamen kann beispielsweise auf der Startseite einer Website nützlich sein, um die Vorauflösung von Domainnamen zu erzwingen, die häufig auf der gesamten Website referenziert werden, obwohl sie auf der Startseite selbst nicht genutzt werden. Dies wird die Gesamtleistung der Website verbessern, obwohl die Leistung der Startseite möglicherweise nicht betroffen ist.
Browser-Kompatibilität
BCD tables only load in the browser
Spezifikationen
Nicht Teil einer aktuellen Spezifikation.