X-DNS-Prefetch-Control header
Nicht standardisiert: Diese Funktion ist nicht standardisiert. Wir raten davon ab, nicht-standardisierte Funktionen auf produktiven Webseiten zu verwenden, da sie nur von bestimmten Browsern unterstützt werden und sich in Zukunft ändern oder entfernt werden können. Unter Umständen kann sie jedoch eine geeignete Option sein, wenn es keine standardisierte Alternative gibt.
Der HTTP-Response-Header X-DNS-Prefetch-Control
steuert das DNS-Prefetching, eine Funktion, bei der Browser proaktiv die Auflösung von Domainnamen 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 und so weiter.
Die Absicht ist, dass das Prefetching im Hintergrund durchgeführt wird, sodass die DNS-Auflösung abgeschlossen ist, wenn die referenzierten Elemente vom Browser benötigt werden. Dies reduziert die Latenzzeit, wenn der Benutzer beispielsweise auf einen Link klickt.
Header-Typ | Response-Header |
---|---|
Verbotener Request-Header | Nein |
Syntax
X-DNS-Prefetch-Control: on
X-DNS-Prefetch-Control: off
Direktiven
on
-
Aktiviert das DNS-Prefetching. Das ist das, was Browser tun, wenn sie die Funktion unterstützen, wenn dieser Header nicht vorhanden ist.
off
-
Deaktiviert das DNS-Prefetching. Dies ist nützlich, wenn Sie die Links auf den Seiten nicht kontrollieren oder wissen, dass Sie keine Informationen an diese Domains preisgeben möchten.
Beschreibung
DNS-Anfragen sind in Bezug auf Bandbreite sehr klein, aber die Latenzzeit kann ziemlich hoch sein, insbesondere in Mobilfunknetzen. Durch spekulatives Prefetching von DNS-Ergebnissen kann die Latenzzeit in bestimmten Fällen, wie zum Beispiel beim Klicken des Benutzers auf den Link, erheblich reduziert werden. In einigen Fällen kann die Latenzzeit um eine Sekunde reduziert werden.
Die Implementierung dieses Prefetchings in einigen Browsern ermöglicht es, dass die Auflösung von Domainnamen parallel (anstatt seriell) zum Laden der tatsächlichen Seiteninhalte erfolgt. Auf diese Weise verursacht der Hochlatenzprozess der Domainnamenauflösung keine Verzögerung beim Laden von Inhalten.
Ladezeiten von Seiten – insbesondere in Mobilfunknetzen – können auf diese Weise messbar verbessert werden. Wenn die Domainnamen von Bildern im Voraus aufgelöst werden können, bevor die Bilder angefordert werden, können Seiten, die viele Bilder laden, eine Verbesserung von 5% oder mehr bei der Ladezeit der Bilder sehen.
Konfiguration des Prefetchings im Browser
Im Allgemeinen müssen Sie nichts tun, um das Prefetching zu verwalten. Der Benutzer kann jedoch das Prefetching deaktivieren. In Firefox kann dies durch Setzen der network.dns.disablePrefetch
-Einstellung auf true
erfolgen.
Auch das Prefetching von eingebetteten Link-Hostnamen wird 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
Prefetching aktivieren und deaktivieren
Sie können den X-DNS-Prefetch-Control
-Header entweder serverseitig senden oder von einzelnen Dokumenten aus mithilfe des http-equiv
-Attributs im <meta>
-Element wie folgt verwenden:
<meta http-equiv="x-dns-prefetch-control" content="off" />
Sie können diese Einstellung ändern, indem Sie content
auf "on"
setzen.
Erzwingen der Abfrage bestimmter Hostnamen
Sie können die Abfrage bestimmter Hostnamen erzwingen, ohne spezifische Anker zu diesen Hostnamen bereitzustellen, indem Sie das rel
-Attribut im <link>
-Element mit einem link type von dns-prefetch
verwenden:
<link rel="dns-prefetch" href="https://www.mozilla.org" />
In diesem Beispiel wird der Domainname www.mozilla.org
vorab aufgelöst.
Ähnlich kann das Link-Element verwendet werden, um Hostnamen aufzulösen, ohne eine vollständige URL anzugeben, indem der Hostname nur mit zwei Schrägstrichen angegeben wird:
<link rel="dns-prefetch" href="//www.mozilla.org" />
Erzwungenes Prefetching von Hostnamen kann nützlich sein, zum Beispiel auf der Homepage einer Website, um die Vorabauflösung von Domainnamen zu erzwingen, die häufig auf der gesamten Website referenziert werden, auch wenn sie auf der Homepage selbst nicht verwendet werden. Dies verbessert die Gesamtleistung der Website, auch wenn die Leistung der Homepage nicht betroffen sein mag.
Spezifikationen
Nicht Teil einer aktuellen Spezifikation.