A solicitação HTTP em questão é, na verdade, inválida, a menos que o navegador esteja falando com o intermediário (proxy).
Seu exemplo ficaria mais parecido com seguir se o navegador estivesse falando diretamente com o servidor da Web:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
Agora, para colocar em perspectiva, considere o modelo de camada OSI
Portanto,temos3sistemasemação.
- Clienteexecutandoonavegador
- ServidordaWebatendendoaosite
- servidorDNSsabendooendereçoIPdosite
Osprotocolosenvolvidossão;debaixoparacima(mínimorelevantedefinidoparaOP)
- IP
- TCP,UDP
- HTTP,DNS
AcomunicaçãoHTTPéfeitaatravésdoprotocoloTCPeacomunicaçãoTCPestánotopodoprotocoloIP
ODNS,nestecaso,éfeitoatravésdoprotocoloUDP,eoprotocoloUDPestánotopodoprotocoloIP.
seqüênciadecomunicaçãoemresumo:
- Onavegadoremexecução
CLIENTsolicitaoServidorDNSusandooprotocoloUDPparaumregistrodewww.pippo.it
1.1.noclienteéosistemaoperacionalqueresolveparteefaladevoltaparaonavegador,onavegadornuncafaladiretamentecomoDNS,esimatravésdosistemaoperacionalinvocando
gethostbyname () ou mais recente getaddrinfo () . Na ordem do Windows em que o sistema operacional resolve os endereços provavelmente é definido por algo como isto , e na precedência de resolução do Linux é definida por /etc/nsswitch.conf -
Servidores DNS usando o protocolo UDP responde a CLIENTE com registro / endereço IP, se existir
-
CLIENT abre a conexão TCP à porta 80 do servidor WEB e grava o texto a seguir
Solicitação HTTP:
GET /hello.htm HTTP/1.1
Host: www.pippo.it
Você poderia imitar a mesma coisa fazendo algo parecido com isso no prompt do console / cmd
> telnet www.pippo.it 80
Trying 195.128.235.49...
Connected to www.pippo.it.
Escape character is '^]'.
GET /hello.htm HTTP/1.1
Host: www.pippo.it
Seguido por duas linhas vazias. Para este servidor web responderá, se houver conteúdo solicitado, ele será impresso na tela e, no caso do navegador, o hypertext
será analisado pelo navegador e todas as tags, links, scripts e imagens serão renderizados no que chamamos de web página.
Na realidade, existem mais alguns detalhes, por ex. Os navegadores armazenam em cache os endereços IP se você já visitou algum domínio, portanto, a resolução do DNS pode não ser necessária. Os navegadores modernos também podem tentar resolver antes que você realmente precise deles ( pré-busca de DNS ) para acelerar sua experiência de navegação.
Além disso, seu computador pode ter um registro estático no arquivo hosts e nenhum servidor DNS jamais seria contatado, e a entrada estática local seria usada primeiro. Isso é configurável e não necessariamente verdadeiro, mas é o padrão para os principais sistemas operacionais com os quais estou familiarizado.