Antes de qualquer coisa, vamos conferir o que significa DNS. Trata-se de uma sigla para “Domain Name System, ou “Sistema de Nomes de Domínios”, em português.
Servidores DNS são máquinas, computadores na grande rede, responsáveis pela “tradução” dos endereços. Ou seja, sempre que alguém tenta acessar um site qualquer (por exemplo, www.codigofonte.com.br), os servidores DNS entram em ação no meio do processo, para converter esta informação no endereço numérico real do site/domínio, ou seja, em um endereço IP.
Todo este processo geralmente é feito bem rapidamente. Em milissegundos, por exemplo, e o usuário não percebe nenhum tipo de demora, ou atraso. E, assim que um servidor DNS retorna o IP de um site, dizemos que este foi então “resolvido”.
Você pode ter uma ideia deste processo em seu próprio computador, agora mesmo. Basta abrir o prompt do DOS e digitar o seguinte:
ping codigofonte.com.br
Tecle <ENTER> ao final e logo a seguir você obterá o endereço IP do site codigofonte.com.br. É bastante simples.
Bem, o processo de resolução DNS pode levar mais ou menos tempo, dependendo de uma série de fatores. A distância física real do servidor onde um website se encontra hospedado influencia, por exemplo, bem como a localização geográfica do requisitante.
Alguns poucos milissegundos podem, algumas vezes, se transformarem em alguns bons segundos de atraso. A este “atraso” damos o nome de latência, veja bem. A latência pode também ser compreendida como o tempo que um pacote de dados leva para transitar entre dois pontos. E não é difícil chegarmos à conclusão de que problemas com latência são capazes de prejudicar bastante a experiência de alguém durante a navegação.
Entretanto, existe um modo de tentarmos “prever” ou, de outra maneira, “buscar antecipadamente”, uma resolução DNS. Navegadores modernos trabalham com “DNS prefetching” e, assim, podem tentar resolver o DNS de quaisquer links existentes em uma página, de forma antecipada.
No “DNS prefetching”, também é utilizado em primeira instância o cache DNS local do computador, caso disponível, para melhores e mais rápidos resultados.
Imagine a economia de tempo proporcionada pela técnica em uma página repleta de hyperlinks, todos apontando para domínios diferentes, hospedados em servidores diferentes, muitas vezes localizados em partes distintas do mundo.
Através do “DNS prefetching”, a resolução dos nomes de domínio pode ser realizada no background, proativamente, antes que o visitante clique em qualquer link. E a técnica também pode ser utilizada para o carregamento de outros elementos, como por exemplo JavaScript, imagens e CSS, veja bem.
Resumindo e apresentando logo o resultado prático do “DNS prefetching”: carregado o website, assim que o visitante clicar em qualquer um dos links nele existentes, a latência será bastante reduzida, pois a resolução DNS já aconteceu, antecipadamente (antes do clique).
Utilizando o “DNS prefetching”
No Mozilla Firefox
No navegador Mozilla Firefox, abra sua página de configurações, digitando o seguinte na barra de endereços:
about:config
A seguir, busque pela seguinte chave:
network.dns.disablePrefetch
Certifique-se de que seu valor esteja definido como “false”. Caso o valor esteja definido como “true”, isto quer dizer que o prefetching está desabilitado no Firefox, e neste caso, basta clicar duas vezes sobre a chave para alterá-lo.
O Firefox também conta com uma configuração específica que determina a utilização ou não de “DNS prefetching” em links existentes em páginas carregadas através do protocolo HTTPS:
network.dns.disablePrefetchFromHTTPS
Altere o valor da chave para “false” para ativar “DNS prefetching” também em páginas HTTPS.
No Google Chrome
Já no Google Chrome, a ativação do “DNS prefetching” deve ser realizada através da página de configurações do browser.
Clique no botão menu, no canto superior direito, e a seguir vá em “Configurações”. Logo abaixo, clique no link “Mostrar configurações avançadas”, desça até “Privacidade” e certifique-se de que a opção abaixo está selecionada:
- Recursos de pré-chamada para carregar páginas mais rapidamente
No desenvolvimento de websites
Desenvolvedores também podem utilizar o “DNS prefetching” em seus documentos, em suas próprias páginas. Basta utilizar a tag abaixo nos links:
link rel="dns-prefetch"
Exemplo:
<link rel="dns-prefetch" href="www.codigofonte.com.br">
Vale lembrar que não haverá nenhuma alteração visível para o visitante, mas a resolução DNS será feita antecipadamente, antes que o visitante clique nos links que contam com a tag acima mencionada.