"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O que acontece quando você entra em &#google.com&#?

O que acontece quando você entra em &#google.com&#?

Publicado em 2024-11-04
Navegar:432

What Happens When You Enter

Você já se perguntou sobre a complexa série de eventos que ocorrem na fração de segundo entre digitar "google.com" em seu navegador e ver a página de pesquisa familiar aparecer? Nesta exploração detalhada, descobriremos o fascinante mundo das tecnologias da web, dos protocolos de rede e da intrincada dança de dados que torna possíveis nossas experiências online.

1. A jornada começa: seu navegador e sistema operacional

1.1 Primeiros passos do navegador

Quando você digita "google.com" e pressiona Enter, seu navegador entra em ação:

  1. Análise de URL: O navegador primeiro analisa o URL que você inseriu. Ele identifica o protocolo (neste caso, "http://" ou "https://" implícito), o nome de domínio ("google.com") e qualquer caminho adicional ou parâmetros de consulta (nenhum neste exemplo simples). .

  2. Verificação HSTS: Para sites preocupados com a segurança, como o Google, o navegador verifica sua lista HTTP Strict Transport Security (HSTS). Se google.com estiver nesta lista (e está), o navegador atualizará automaticamente a solicitação para HTTPS.

  3. Verificação de cache: Antes de entrar em contato com a rede, o navegador verifica seu cache local. Este cache armazena informações de visitas anteriores, incluindo:

    • Cache DNS: o endereço IP associado a google.com
    • Cache de recursos: arquivos HTML, CSS, JavaScript e imagens da página inicial do Google

Se algum deles for encontrado e ainda válido (não expirado), o navegador pode pular algumas das etapas a seguir.

1.2 Função do Sistema Operacional

Se o navegador não conseguir encontrar as informações necessárias em seu cache, ele recorre ao sistema operacional (SO) para obter ajuda:

  1. Verificação do arquivo Hosts: O sistema operacional primeiro procura no arquivo "hosts" local. Este arquivo pode mapear nomes de domínio para endereços IP, potencialmente ignorando a pesquisa de DNS. No entanto, para a maioria dos usuários, google.com não estará neste arquivo.

  2. Cache do cliente DNS: O sistema operacional mantém seu próprio cache DNS, separado do do navegador. Ele verifica aqui a seguir.

  3. Configuração do Resolver: Se o IP não estiver no cache local, o sistema operacional se prepara para solicitar um servidor DNS. Ele lê sua configuração de rede para descobrir qual servidor DNS consultar (geralmente fornecido pelo seu provedor de serviços de Internet ou definido manualmente).

2. Resolução DNS: Encontrando o endereço do Google

Se o endereço IP de google.com não estiver armazenado em cache, precisamos solicitar ao Sistema de Nomes de Domínio (DNS) que traduza o "google.com" legível por humanos em um endereço IP utilizável por máquina.

2.1 A hierarquia DNS

O DNS é organizado em uma estrutura hierárquica:

  1. Servidores raiz: No topo da hierarquia. Eles sabem onde encontrar os servidores autorizados para domínios de nível superior (TLDs) como .com, .org, .net, etc.

  2. Servidores TLD: Esses servidores conhecem todos os domínios registrados em seu TLD. O servidor TLD .com conhece google.com.

  3. Servidores de Nomes Autorizados: São responsáveis ​​por saber tudo sobre um domínio específico, incluindo seu(s) endereço(s) IP.

2.2 O processo de consulta DNS

  1. Resolvedor recursivo: o servidor DNS do seu ISP (ou outro resolvedor configurado) recebe a consulta para google.com. Se não tiver a resposta armazenada em cache, ele inicia um processo recursivo:
  • Ele pergunta a um servidor raiz sobre .com
  • O servidor raiz o refere a um servidor TLD .com
  • Ele pergunta ao servidor TLD .com sobre google.com
  • O servidor .com refere-se aos servidores de nomes autorizados do Google
  • Ele solicita ao servidor de nomes do Google o IP de google.com
  • O servidor de nomes do Google responde com o endereço IP
  1. Cache: cada etapa deste processo pode envolver armazenamento em cache, portanto, a jornada completa nem sempre é necessária. O resolvedor armazena em cache o resultado final, normalmente por um tempo especificado pelo Google (o Time To Live, ou TTL).

  2. Balanceamento de carga: grandes serviços como o Google geralmente retornam vários endereços IP. Isso permite balanceamento de carga e maior confiabilidade.

2.3 Exemplo de pesquisa de DNS

Digamos que a pesquisa de DNS retorne o seguinte resultado (simplificado):

google.com.     300    IN    A     172.217.167.78

Isso significa:

  • O domínio é google.com
  • O registro tem um TTL de 300 segundos (5 minutos)
  • É um registro da Internet (IN)
  • É um tipo de registro Endereço (A)
  • O endereço IP é 172.217.167.78

3. Estabelecendo uma conexão: TCP/IP

Agora que temos o endereço IP do Google, é hora de estabelecer uma conexão.

3.1 A pilha TCP/IP

  1. Camada de aplicação: Seu navegador opera aqui, usando HTTP(S) para se comunicar.

  2. Camada de transporte: TCP é usado aqui para garantir entrega confiável e ordenada de dados.

  3. Camada de Internet: IP é usado para rotear pacotes entre redes.

  4. Camada de link: trata da transmissão física de dados, seja por Ethernet, Wi-Fi, redes celulares, etc.

3.2 O aperto de mão TCP

Para estabelecer uma conexão, ocorre um handshake de três vias:

  1. SYN: seu computador envia um pacote SYN (sincronização) para o servidor do Google.
  2. SYN-ACK: o servidor do Google responde com um pacote SYN-ACK.
  3. ACK: Seu computador envia um pacote ACK (reconhecimento) de volta.

Esse processo estabelece números de sequência para a conversa, garantindo que os pacotes possam ser ordenados corretamente e que quaisquer pacotes perdidos possam ser detectados e retransmitidos.

3.3 Aperto de mão TLS

Para conexões HTTPS (usadas pelo Google), ocorre um handshake TLS (Transport Layer Security) adicional:

  1. Cliente Olá: seu navegador envia versões SSL/TLS compatíveis, conjuntos de criptografia e um número aleatório.
  2. Server Hello: O servidor escolhe a versão SSL/TLS e o conjunto de cifras, envia seu certificado e outro número aleatório.
  3. Autenticação: seu navegador verifica o certificado do servidor com uma autoridade de certificação confiável.
  4. Troca de chaves: Uma chave simétrica segura é estabelecida para criptografar a sessão.

4. Solicitação HTTP: solicitando a página

Com uma conexão segura estabelecida, seu navegador envia uma solicitação HTTP GET para a página inicial do Google.

4.1 Exemplo de solicitação HTTP

GET / HTTP/2
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Esta solicitação inclui:

  • O método (GET) e caminho (/) que estamos solicitando
  • A versão HTTP (HTTP/2)*
  • Vários cabeçalhos que fornecem informações sobre o navegador e seus recursos *Observação: HTTP/2 refere-se apenas a HTTPS, não à conexão http. Essa solicitação é enviada por meio de uma conexão HTTPS já estabelecida, mesmo que os cabeçalhos não mencionem explicitamente o HTTPS.

5. Processamento do servidor: Google responde

Os servidores do Google recebem esta solicitação e a processam. Isso pode envolver:

  1. Load Balancing: Distribuindo a solicitação entre vários servidores.
  2. Servidores de aplicativos: execução de código para gerar uma resposta.
  3. Consultas de banco de dados: busca de dados personalizados ou sugestões de pesquisa.
  4. Cache: recuperar conteúdo pré-gerado quando possível.

6. Resposta HTTP: Envio da página

O servidor do Google envia de volta uma resposta HTTP, que pode ser semelhante a esta:

HTTP/2 200 OK
Content-Type: text/html; charset=UTF-8
Date: Sat, 21 Sep 2024 12:00:00 GMT
Expires: Sat, 21 Sep 2024 12:00:00 GMT
Cache-Control: private, max-age=0
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
[... other headers ...]



  
    
    Google
    [... rest of the HTML ...]
  
  
    [... body content ...]
  

Esta resposta inclui:

  • Código de status (200 OK)
  • Vários cabeçalhos fornecendo metadados sobre a resposta
  • O conteúdo HTML da página

7. Renderização: dando vida à página

Seu navegador agora tem o conteúdo HTML e começa a renderizar a página:

  1. Analisando HTML: O navegador analisa o HTML, criando o Document Object Model (DOM).

  2. Solicitando recursos adicionais: ao encontrar links para CSS, JavaScript, imagens, etc., ele envia solicitações HTTP adicionais para esses recursos.

  3. Análise de CSS: O navegador analisa CSS e aplica estilos aos elementos DOM, criando o CSS Object Model (CSSOM).

  4. Executando JavaScript: O navegador executa JavaScript, que pode modificar o DOM e o CSSOM.

  5. Renderização: O navegador usa o DOM e CSSOM finais para renderizar a página na sua tela.

Conclusão

O que parece ser uma ação simples – digitar “google.com” e pressionar Enter – na verdade envolve uma série complexa de etapas, desde pesquisas de DNS e protocolos de rede até processamento no servidor e renderização no lado do cliente. Essa dança complexa acontece em meros milissegundos, mostrando a incrível engenharia que alimenta nossas experiências online.

A compreensão desses processos não apenas satisfaz nossa curiosidade, mas também ajuda os desenvolvedores web e profissionais de TI a otimizar sites, solucionar problemas e criar aplicativos web mais eficientes e seguros. Na próxima vez que você acessar um site, reserve um momento para apreciar as maravilhas tecnológicas que trabalham nos bastidores para trazer a web para sua tela!


As imagens neste blog são geradas por IA.

Leia também HTTP vs HTTPS qual é a diferença entre eles

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/yashrajxdev/what-happens-when-you-enter-googlecom-a-deep-dive-into-the-internets-inner-workings-1aoi?1Se houver algum violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3