Se eu inserir um IP para um site em vez do formulário de cadeia de caracteres, meu servidor DNS local entenderá isso e ignorarei o processo DNS? [duplicado]


12

Isso é puramente por curiosidade. Mas se eu digitasse o IP de um site, a solicitação ainda passaria pelo processo de pesquisa futura? Caso contrário, em que momento e em que etapa é percebido que esse é o local por IP e não um nome de host como uma string?

Além disso, como isso seria registrado no meu hostfile? Se ele passar por todo o processo de pesquisa, o arquivo de host conterá a string nome do host e o IP e será preenchido localmente?


1
Sistema de nome de domínio, é isso que traduz um URL (google.com) no endereço IP; portanto, se você usar um endereço IP, ele não precisará fazer uma pesquisa de nome, ignorando o sistema DNS. pt.wikipedia.org/wiki/Domain_Name_System
Moab

As respostas abaixo estão corretas, os navegadores são inteligentes o suficiente para não fazer uma pesquisa direta de um endereço IP. Fazer uma pesquisa direta de um endereço IP nunca é uma boa idéia, existem três maneiras pelas quais um servidor DNS pode reagir a ele: 1) A maioria dos servidores DNS simplesmente retorna o mesmo endereço IP. 2) Outros servidores DNS não podem resolver o "nome do DNS" para um IP e o informarão. 3) Alguns servidores DNS (gratuitos) não conseguem resolver o "nome do DNS" e fornecem um IP que o redireciona para sua própria página de pesquisa (geralmente cheia de anúncios).
User1793963

1
O nome do domínio é necessário se o servidor da web hospedar vários sites. Ele possui um único IP e, sem nome de domínio, não consegue entender qual site você deseja. Se houver apenas um site, ele funcionará com o IP da mesma maneira.
i486

1
Observe que o nome do host não é enviado apenas ao DNS para tradução, mas também ao próprio servidor da web. Isso significa que um servidor da web que atende a vários sites não pode saber qual desses sites você deseja. Obviamente, isso é um problema do IPv4; Com o IPv6, todos os sites podem ter seu próprio endereço IP.
MSalters

1
Agora, a próxima pergunta é: Como é que um sabe o seu navegador que 2001:feed:face:dead::beef:8080é um endereço IPv6 com uma porta especificada e não apenas uma URL muito mal formatado ...;)
Mark Henderson

Respostas:


15

Se você usar um endereço IP, o sistema operacional saberá que é um endereço IP imediatamente e não fará uma pesquisa direta.

Quando você faz uma solicitação HTTP, a primeira etapa é obter o endereço IP do destino, para que o navegador possa se comunicar com o servidor. Para a comunicação com o servidor, tudo acontece através do IP, do endereço IP ao endereço IP e, portanto, o nome do servidor não é necessário para essa comunicação. No entanto, ele é passado nos cabeçalhos HTTP como um Host:cabeçalho para informar ao servidor da Web qual site você está procurando, se estiver hospedando vários sites.

No caso de acessar pelo endereço IP, isso não acontece e o site padrão é apresentado.

Seu hostsarquivo é estático, não é alterado por nenhuma ação que você execute, exceto se você o editar diretamente (ou tiver scripts ou aplicativos que o modifiquem).


2
Além disso, vale ressaltar que, se você digitar o endereço IP em um navegador como o Chrome, poderá fazer uma pesquisa no Google antes de simplesmente carregar o site.
Sventechie

1
Observe que a vinculação interna dos objetos individuais que compõem a página é provavelmente feita pelo FQDN, portanto, embora a solicitação raiz seja executada sem a pesquisa de DNS, mas quase todas as imagens, folhas de estilo, arquivos de script etc. serão resolvidas pelo DNS pedido quando as tentativas do navegador seus para tornar a página raiz e download todos os recursos filhos ..
Frank Thomas

2
@FrankThomas Na maioria dos casos, onde o ativo está no mesmo servidor, os ativos são referenciados por URLs relativos e, portanto, serão acessados ​​pelo mesmo método da solicitação original - via IP. A exceção seria onde base_href é usado nos cabeçalhos e, portanto, dita o host que os URLs relativos devem usar. Se um FQDN for usado, sim, terminará o jogo.
Paul

In the case of accessing by IP address, this does not happen, and the default site is presented.É muito mais provável que você receba uma página de erro.
User112638726

@sventechie Sério? Alguma idéia de por que isso faria isso? Tipo, qual é o valor disso?
Athoxx

3

Como outros escreveram, usando um endereço IP, você está realmente ignorando o DNS, o que permite acessar, por exemplo, sites de desenvolvimento sem um nome de host.

Adicionar um nome de host com simulação de IP ao / etc / hosts é extremamente comum novamente para sites de desenvolvimento. Ao contrário de usar o endereço IP diretamente, isso a) ainda ignorará o DNS b) fará o navegador adicionar o Hostcabeçalho da solicitação à solicitação HTTP, permitindo, por exemplo, hosts virtuais em um servidor local.


Vale ressaltar que, se por qualquer motivo o endereço IP for atualizado, o arquivo HOSTS não será atualizado junto com ele, o que pode levar a um comportamento inesperado e a um site que parece não estar mais funcionando. Observar o arquivo hosts é uma das últimas coisas que as pessoas fazem na solução de um problema e podem ser totalmente ignoradas.
LPChip

@LPChip fair, mas observe que enfatizei várias vezes como isso é mais uma prática local para desenvolvedores do que qualquer outra coisa.
chx
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.