Quase todos os navegadores e roteadores modernos têm caches DNS , que armazenam temporariamente endereços IP de domínios visitados recentemente, permitindo essencialmente um acesso mais rápido ao evitar pesquisas DNS repetidas.
Mas o que acontece quando eles não correspondem? Se um domínio aponta para endereços IP diferentes no navegador e no roteador. Quem tem prioridade?
- O cache do navegador é usado primeiro?
- O cache do roteador é usado primeiro?
Nenhum dos dois realmente "tem prioridade". Um cache DNS no nível do navegador existe para evitar ter que perguntar ao servidor DNS. Se um registro DNS for encontrado no cache do navegador, o roteador (ou outro servidor DNS) não entrará em ação.
O mesmo também é verdade para essencialmente todos os servidores DNS na cadeia. O servidor responderá com um resultado de seu cache se tiver um, e caso contrário consultará um servidor DNS upstream para obter a resposta. Isso continua até que alguém tenha o registro em cache ou você alcance um servidor DNS autoritativo para um determinado domínio.
Não há prioridade como tal porque eles não são usados em paralelo. Esses caches são conectados "em série", ou seja, o resolvedor DNS do seu roteador é o upstream do resolvedor do navegador (assim como o resolvedor do seu ISP é usado como o upstream do seu roteador).
O navegador é quem inicia a consulta em primeiro lugar, então seu resolvedor verificará seu cache interno primeiro antes de enviar para a rede (porque o cache local pode dar uma resposta mais rápido do que uma consulta de rede).
E o ponto de ter um cache é que se o cache tiver dados, então o upstream não é consultado de forma alguma, e portanto o cache vence por padrão. Então se seu navegador já tem uma resposta em cache, então ele apenas usa isso – ele não consulta o roteador de forma alguma, e nenhuma comparação é feita.
Fazer o contrário (por exemplo, obter um resultado do cache e então consultar o upstream para verificar se eles correspondem) basicamente anularia o propósito do navegador ter um cache, pois levaria o mesmo tempo (talvez até um pouco mais) do que se o navegador não fizesse nenhum cache.
No caso clássico, o cache do navegador seria usado primeiro - embora esse cache (se existir, nem todos os navegadores terão um) tenha vida curta - normalmente 1 minuto ou mais.