Sim, a maioria dos navegadores dos últimos 5 a 10 anos tentará os outros registros A se um não responder. Às vezes, isso é chamado de "nova tentativa do navegador" ou "nova tentativa do cliente" aparentemente. Você encontrará praticamente tudo sobre isso no contexto das várias explorações de navegador que esse recurso permite contra sites que não o usam (consulte Rebobinação de DNS e fixação de DNS , fixação anti-dns, fixação anti-dns, anti-anti -anti-dns fixando e assim por diante). Tipo de má reputação, mas prova que existe.
Praticamente todos os navegadores realmente recebem a lista completa de registros A e, de fato, verificam outros se o navegador que está usando falhar. Você pode esperar que cada cliente tenha uma espera de 30 segundos quando tentar acessar um site pela primeira vez quando um servidor estiver inoperante, até que ele se conecte a um endereço de trabalho. O navegador armazenará em cache o endereço que está funcionando e continuará usando esse endereço para solicitações futuras, a menos que também falhe, e terá que pesquisar na lista novamente. Então, espera de 30 segundos no primeiro pedido, tudo bem depois.
Mas não é algo que você necessariamente queira usar, ele terá muitas advertências sobre compatibilidade de navegador, compatibilidade de sistema operacional, compatibilidade de proxy, cabeçalhos de controle de cache terão efeitos estranhos sobre se ele se lembra de quais IPs estão inativos ou começa a ter Na espera de 30 segundos em cada solicitação, as pessoas que escrevem clientes personalizados para o seu site acabam usando gethostbyname em vez de getaddrinfo e não conseguem lidar com o failover, todos os tipos de problemas em potencial.
Você também não pode confiar em vários registros A para permitir servidores "mestre" e "escravo", porque nunca saberá qual endereço um navegador escolherá na lista. Todos eles precisam ser capazes de lidar com os visitantes em execução, porque qualquer um pode receber tráfego se estiver ativo. Um navegador pode pensar que seu terceiro servidor fora da lista é o mais atraente, talvez pareça o mais próximo, e ele escolherá aquele, mesmo que os três ainda estejam ativos.
Mas se você pode conviver com as limitações e possuir um sistema HTTP razoavelmente simples com o qual pode prever a interação do navegador, ele funcionará.
Ah, você também terá que lidar com muitas pessoas dizendo que isso não existe (já que isso era verdade há 15 anos). Mas você pode tentar telnetar para um nome de domínio com vários registros A, alguns com IPs mortos e outros bons, se precisar provar (sim, até o bom e velho telnet agora usa getaddrinfo e manipula vários registros A normalmente hoje em dia) - ele imprimirá uma boa lista dos IPs que está tentando até que finalmente seja bem-sucedido.
Esteja avisado de que o Windows Vista implementa as partes estúpidas do RFC3484 (ou seja, o backport do IPV6 para o IPV4) e prefere o endereço IP que compartilha a maioria dos bits de prefixo com o endereço IP do usuário, em vez de escolher um aleatoriamente. Como a maioria dos usuários tem endereços IP que começam com 192.168, isso significa que qualquer que seja o seu endereço IP compartilhe a maioria dos bits de prefixo que obterá a maior parte do tráfego do Vista. A Microsoft corrigiu essa idiotice específica no Windows 7 e posterior, por isso não é tão problema quanto costumava ser.
fonte
Esta é a técnica básica de distribuição de balanceamento de carga DNS: DNS Round Robin. Isso não tem nada a ver com o navegador, depende da implementação do resolvedor e do cache local / remoto do endereço DNS. As mudanças são que, se um servidor falhar, devido ao armazenamento em cache na camada DNS, seu site poderá ficar inacessível.
Veja aqui uma explicação básica sobre o DNS Round Robin na WikiPedia.
fonte
nslookup cnn.com
no Windows quantohost cnn.com
no Linux, retorna uma lista de endereços IP; portanto, depende definitivamente da implementação do navegador .O sistema operacional determina qual IP usar, não o navegador. O Windows fará o rodízio da lista retornada (na lista retornada pelo DNS), mas continuará usando o mesmo endereço até que o DNS seja liberado ou exceda o tempo limite. * As implementações ix dependem parcialmente da implementação do pacote tcp stack, mas geralmente também seguem um método round robin.
fonte
InetAddress.getAllByName("example.com")
, recebo uma lista com todos os endereços IP, para poder optar por iniciar uma conexão TCP com todos eles, se desejar. E é o mesmo se você usar ogetaddrinfo()
C. Portanto, é definitivamente uma escolha que os desenvolvedores fazem e não o sistema operacional. O servidor DNS decide apenas em que ordem a lista de endereços IP é retornada.