Alguém pode me dizer o que acontece nos bastidores, desde o momento em que digito um URL no navegador até o momento em que vejo a página no navegador? Uma descrição detalhada do processo seria de grande ajuda.
Alguém pode me dizer o que acontece nos bastidores, desde o momento em que digito um URL no navegador até o momento em que vejo a página no navegador? Uma descrição detalhada do processo seria de grande ajuda.
Respostas:
Atenção: este é um esboço extremamente grosseiro e simplificado , assumindo a solicitação HTTP mais simples possível (sem HTTPS, sem HTTP2, sem extras), DNS mais simples possível, sem proxies, IPv4 de pilha única, uma solicitação HTTP apenas, uma solicitação HTTP apenas, um servidor HTTP simples no a outra extremidade e sem problemas em nenhuma etapa. Este é, para a maioria das intenções e propósitos contemporâneos, um cenário irreal; tudo isso é muito mais complexo no uso real, e a pilha de tecnologias se tornou uma ordem de magnitude mais complicada desde que isso foi escrito. Com isso em mente, a seguinte linha do tempo ainda é um pouco válida:
Novamente, a discussão de cada um desses pontos encheu inúmeras páginas; tome isso apenas como um resumo, abreviado por uma questão de clareza. Além disso, há muitas outras coisas acontecendo paralelamente a isso (processamento de endereço digitado, pré-busca especulativa, adição de página ao histórico do navegador, exibição de progresso ao usuário, notificação de plugins e extensões, renderização da página durante o download, o pipeline, o rastreamento de conexão para keep-alive, gerenciamento de cookies, verificação de conteúdo malicioso etc.) - e toda a operação torna-se uma ordem de magnitude mais complexa com HTTPS (certificados e cifras e fixação, oh meu!).
Primeiro, o computador procura o host de destino. Se existir no cache DNS local, ele usará essas informações. Caso contrário, a consulta DNS será realizada até que o endereço IP seja encontrado.
Em seguida, seu navegador abre uma conexão TCP com o host de destino e envia a solicitação de acordo com o HTTP 1.1 (ou pode usar o HTTP 1.0, mas os navegadores normais não fazem mais isso).
O servidor procura o recurso necessário (se existir) e responde usando o protocolo HTTP, envia os dados para o cliente (= seu navegador)
O navegador usa o analisador de HTML para recriar a estrutura do documento que é apresentada posteriormente na tela. Se encontrar referências a recursos externos, como imagens, arquivos css e arquivos javascript, eles serão entregues da mesma maneira que o próprio documento HTML.
Procure a especificação do HTTP. Ou, para começar, tente http://www.jmarshall.com/easy/http/