DNS prefetch merupakan fitur dari browser dimana secara background melakukan resolusi nama domain, misal dari kaklabs.com menjadi ip address 127.0.0.1.

Secara bandwidth pengaruhnya kecil, namun secara latency pengaruhnya cukup besar apalagi di jaringan internet mobile.

Dengan menggunakan fitur DNS prefetch, ketika pengunjung situs melakukan klik link latency yang terjadi menjadi lebih rendah. Dalam beberapa kasus, latency dapat menurun hingga satu detik.

Prefetch Secara Manual

Untuk melakukan prefetch secara manual dengan tag HTML

<link rel="dns-prefetch" href="https://www.kaklabs.com/">

Browser akan melakukan pre-resolve ke nama domain https://www.kaklabs.com. Tanpa url yang complete juga bisa dengan memberikan dua karakter slash sebelum hostname

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

DNS Prefetch Control

Server dapat mematikan fitur DNS prefetch dengean mengirim header x-dns-prefetch-control manjadi “off”.

atau bisa juga mematikan DNS prefetch dengan meta tag.

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

Di browser Chromium, jika DNS prefetch “off”, maka ketika “on” browser tetap tidak menjadi “on” karena DNS prefetch “off” telah dijalankan. Behaviour ini kemungkinan sama dengan dengan browser Google Chrome.

<a href="http://a.com"> A) Default HTTPS: tanpa prefetch </a>
<meta http-equiv="x-dns-prefetch-control" content="on">
<a href="http://b.com"> B) Manual on: prefetch domain. </a>
<meta http-equiv="x-dns-prefetch-control" content="off">
<a href="http://c.com"> C) Manual off: tidak melakukan prefetch resolusi domain</a>
<meta http-equiv="x-dns-prefetch-control" content="on">
<a href="http://d.com"> D) Sudah off sebelumnya: tidak melakukan prefetch resolusi domain. </a>

Secara default browser Chromium tidak melakukan prefetch resolusi domain terhadap hyperlinks dengan protokol HTTPS.

Jika meta tag x-dns-prefetch-control “on” digunakan, maka seluruh link baik di protokol HTTPS atau HTTP akan dilakukan prefetch tanpa menyentuh konfigurasi prefetch yang ditulis secara manual dengan meta tag dns-prefetch.

Referensi: