I browser moderni hanno una funzione apparentemente utile, ma che provoca un notevole e inutile incremento di traffico DNS.
Una piccola spiegazione a grandi linee su cime funziona la risoluzione dei nomi, una delle tecnologie che stanno alla base del funzionamento di Internet per l’utente finale.
Ogni macchina (host) collegata a Internet ha un indirizzo IP che è necessariamente univoco (tralasciamo i NAT delle reti private che non ci interessano in questo contesto). L’indirizzo IP è, per ora, formato da una quaterna di numeri decimali da 0 a 255 separati da punti, tipo 1.2.3.4
Per rendere più facile la memorizzazione dei siti, esiste un sistema che assegna ad ogni indirizzo (ad esempio 209.62.58.154) uno più nomi a dominio (ad esempio siamogeek.com). Questo accoppiamento è gestito dal DNS.
Quando un programma chiede la risoluzione di un nome, ovvero l’indirizzo IP che corrisponde a quel nome, il DNS se lo procura e lo tiene da parte nella sua cache nel caso in cui il programma dovesse chiederlo di nuovo. Se si dovesse verificare questo caso, non verrebbe più fatta una richiesta, ma verrebbe uutilizzata l’informazione in cache.
La durata di questa cache è stabilita dal valore del TTL (time to live) associato a ciascuna informazione rilasciata dal DNS. Il TTL è il motivo per cui il vostro provider vi dice che una modifica al DNS si deve propagare su Internet. In realtà, la durata della propagazione non è altro che il tempo necessario affinché scadano tutte le informazioni registrate nelle cache dei DNS.
Siccome, per motivi tecnici, la risoluzione di un nome potrebbe richiedere anche uno o due secondi, qualcuno ha avuto la (presunta) bella idea di introdurre il DNS prefetching nei browser.
Immaginate una pagina visualizzata da vostro browser: la pagina contiene, ovviamente, dei link. Normalmente, quando clickate su un link il browser risolve il nome associato all’URL in quel momento e contatta il server remoto per recuperare la pagina da visualizzare.
Se è attiva la funzione di DNS prefetching, quando il browser visualizza una pagina, tenta di risolvere tutti i nomi a dominio citati in tutti gli URL di quella pagina, anche se non verranno mai utilizzati dall’utente.
È ovvio che una feature di questo tipo sovraccarica inutilmente sia il DNS server utilizzato dal browser, sia i DNS server autoritativi dei vari nomi a dominio, che devono soddisfare un sacco di richieste, che, però, non verranno mai utilizzate.
Gli sviluppatori possono bloccare questa feature delirante includendo questo nella sezione HEAD delle pagine HTML:
<meta http-equiv="x-dns-prefetch-control" content="off">
(via Pinkbike)
Lascia un commento