O que exatamente acontece quando você navega em um site em seu navegador?

59

O que acontece nos bastidores quando digitamos www.cnn.com em um navegador e como as informações são exibidas na tela?

Uma explicação técnica seria muito apreciada.

    
por Rachel 28.08.2009 / 18:35

9 respostas

130

Navegador: "Ok, então, eu tenho um usuário solicitando este endereço: www.cnn.com. Eu acho que desde que não há barras ou qualquer coisa, este é um pedido direto de uma página principal Também não havia nenhum protocolo ou porta definida, então eu vou assumir que é HTTP e vai para a porta 80 ... oh bem, as primeiras coisas primeiro. Hey DNS, amigo, acorde! Onde está esse esconderijo da www.cnn.com? "

DNS: "Certo ... espere um segundo, eu perguntarei aos servidores do ISP. Ok, parece 157.166.226.25."

Navegador: "Ok. Internet Protocol Suite, sua vez! Ligue para 157.166.226.25, por favor. Envie-lhes este cabeçalho HTTP. Ele está pedindo a estrutura básica e o conteúdo de sua página principal, então eu sei o que mais buscar ... oh bem, não que você se importe com isso, eu acho. "

TCP / IP: "O que você quer dizer com minha vez ? Como se eu não estivesse trabalhando apenas nas minhas costas para o DNS? Meu Deus, o que isso faz? pegue um pouco de apreciação aqui ... "

Navegador: ...

TCP / IP: "Sim, sim ... Conectando ... vou pedir ao gateway para enviá-lo. Você sabe, não é tão fácil, eu vou tenho que dividir seu lindo pedido lá em várias partes para que ele chegue ao fim, e reúna todas as coisas que eles enviam de volta de todos os milhares de pacotes que recebo ... ah, certo, você não liga. Figuras. "

Enquanto isso, na sede da CNN, uma mensagem finalmente acaba na porta do Servidor Web.

Servidor da Web da CNN: "Nzhôô! Um cliente! Ele quer novidades! A primeira página! Que tal?"

Mecanismo de script do lado do servidor da CNN: "Certo, vai funcionar! Primeira página, certo?"

Servidor de banco de dados da CNN: "Yey! Trabalhe para mim! De que conteúdo você precisa?"

Mecanismo de script do lado do servidor da CNN: "... hum, desculpe DB, eu tenho uma cópia da primeira página aqui no meu cache, não é necessário compilar nada. Mas ei, leve esse usuário ID e armazená-lo, vou enviá-lo para o cliente também, por isso sabemos com quem estamos falando mais tarde. "

Servidor de banco de dados CNN: "Yey!"

De volta ao computador do usuário ...

TCP / IP: "Ooookay, aí vem a resposta. Oh garoto, por que tenho a sensação de que isso será um grande problema ..."

Navegador: "Uh, uau ... isso tem todos os tipos de código javascript ... monte de imagens, alguns formulários ... Certo, isso vai demorar um pouco para renderizar. Melhor chegar a ele Hey, sistema de IP, há um monte de coisas que você precisa obter Vamos ver que eu preciso de algumas folhas de estilo do i.cdn.turner.com - via HTTP e pedir o arquivo /cnn/.element /css/2.0/common.css. E então pegue alguns desses scripts no i.cdn.turner.com também, estou contando seis até agora ... "

TCP / IP: "Eu recebo a foto. Apenas me dê os endereços do servidor e tudo isso. E envolva esse arquivo dentro da requisição HTTP, não quero lidar com isso. "

DNS: "Verificando o i.cdn.turner.com ... ei, um pouco de trivialidades, na verdade é chamado cdn.cnn.com.c.footprint.net. IP é 4.23. 41,126 "

Navegador: "Claro, claro ... espere um pouco, isso vai demorar uns nseg para processar, estou tentando entender todo esse script ..."

TCP / IP: "Ei, aqui está o CSS que você pediu. Ah, e ... sim, esses scripts adicionais também voltaram."

Navegador: "Ufa, tem mais ... algum tipo de anúncio em vídeo!"

TCP / IP: "Oh garoto, que divertido isso parece ..."

Navegador: "Há todo tipo de imagens também! E esse CSS parece um pouco desagradável ... certo, se essa parte for lá, e tiver essa linha no topo ... como na terra que caberia mais ... não, eu vou ter que esticar isso um pouco para torná-lo ... Oh, mas esse outro arquivo CSS substitui essa regra ... Bem, este não vai ser um peça fácil de renderizar, com certeza! "

TCP / IP: "Ok, ok, pare de me distrair por um segundo, ainda há muito a fazer aqui."

Navegador: "Usuário, aqui está um pequeno relatório de progresso para você. Desculpe, tudo isso pode levar alguns segundos, há 140 elementos diferentes para carregar e chegar aos 16 até agora."

Um ou dois segundos depois ...

TCP / IP: "Ok, isso deve ser tudo. Ei, ouça ... desculpe, eu briguei com você mais cedo, você está gerenciando lá? Essa certeza parece ser a carga para você também. "

Navegador: "Ufa, sim, são todos esses sites hoje em dia, eles com certeza não facilitam para você. Bem, eu conseguirei. É para isso que estou aqui."

TCP / IP: "Eu acho que é muito pesado para todos nós hoje em dia ... ah, pare de se regozijar com o DNS!"

Navegador: "Ei, usuário! O site está pronto - receba suas notícias!"

    
por 29.08.2009 / 00:16
20

Como funciona a web: HTTP e CGI explicados

Também uma ótima explicação do CERN - alma mater da Web: Como a web funciona

    
por 28.08.2009 / 18:37
18
  • O navegador divide o que você digita (o URL) em um nome de host e um caminho.
  • O navegador forma uma solicitação HTTP para solicitar os dados no nome do host e caminho fornecidos.
  • O navegador realiza a pesquisa de DNS para resolver o nome do host em um endereço IP.
  • O navegador forma uma conexão TCP / IP com o computador especificado por meio do endereço IP. (Essa conexão é na verdade formada por muitos computadores, cada um passando os dados para o próximo.)
  • O navegador envia a solicitação HTTP pela conexão para o endereço IP fornecido.
  • Esse computador recebe a solicitação HTTP da conexão TCP / IP e a transmite para o programa do servidor da Web.
  • O servidor da Web lê o nome do host e o caminho e localiza ou gera os dados solicitados.
  • O servidor da Web gera uma resposta HTTP contendo esses dados.
  • O servidor da Web envia essa resposta HTTP de volta pela conexão TCP / IP para sua máquina.
  • O navegador recebe a resposta HTTP e a divide em cabeçalhos (descrevendo os dados) e no corpo (os dados em si).
  • O navegador interpreta os dados para decidir como exibi-los no navegador - normalmente, são dados HTML que especificam tipos de informações e sua forma geral.
  • Alguns dos dados serão metadados que especificam recursos adicionais que precisam ser carregados, como folhas de estilo para layout detalhado, imagens em linha ou filmes em Flash. Esses metadados são especificados novamente como um URL, e todo esse processo é repetido para cada um até que todos sejam carregados.
por 28.08.2009 / 18:49
12

O primeiro passo é a pesquisa do DNS (Domain Name Server). Ele usa os servidores DNS especificados nas configurações de rede (ou fornecidos a você pelo DHCP) para procurar o domínio principal (cnn.com) e, em seguida, solicita ao servidor de nomes desse domínio o endereço IP do subdomínio especificado (www.cnn.com).

Depois de ter o endereço IP, o navegador inicia as comunicações com o servidor da web. Isso é feito usando o protocolo especificado (que geralmente é padronizado como HTTP 1.1). Uma solicitação 'GET' para '/' é feita no servidor, que responde com o conteúdo do documento HTML e os cabeçalhos apropriados (que informam ao navegador o tipo de conteúdo, o HTML e outras informações do documento). Em seguida, o navegador analisa o documento e encontra URLs que ele precisa incorporar na página (como imagens ou folhas de estilo vinculadas) e faz solicitações GET em cada uma delas.

O navegador também faz automaticamente uma solicitação GET para '/favicon.ico' (para exibir o pequeno ícone CNN ao lado do título do site).

Seu navegador provavelmente também especificará em seus cabeçalhos de solicitação que deseja que o conteúdo da resposta seja compactado, usando o algoritmo gzip. Isso faz com que o download do arquivo seja muito menor, se o servidor o suportar. Isso tudo é transparente para você, mesmo que seja como baixar um arquivo ZIP e descompactá-lo.

Quando você recarrega a página, o navegador verifica se essa página já está armazenada em cache no sistema e, em caso afirmativo, faz uma solicitação HTTP apenas para o cabeçalho do documento e verifica a data da modificação. Se essa data for posterior à sua cópia em cache, ela solicitará o conteúdo completo do documento novamente e atualizará a página. Caso contrário, apenas usa sua cópia local.

    
por 28.08.2009 / 18:37
8

Faltar tão longe das outras respostas é o que acontece no lado da CNN:

  • Uma máquina na CNN recebe a mensagem do seu computador solicitando a página.
  • Ele redireciona essa solicitação para um dos muitos computadores que a CNN está usando para seu site da Web (o motivo para isso é que, assim, você pode distribuir o trabalho de reunir as páginas da Web da resposta em vários computadores)
  • O computador da CNN recebe sua solicitação e responde com uma página da Web que provavelmente é quase totalmente pré-computada, mas talvez isso mude algumas coisas antes de enviá-la para você (pode ser o anúncio no topo, talvez manchete). Às vezes, os computadores montam a página a partir de vários componentes pequenos toda vez que recebem uma solicitação; não tenho certeza do que a CNN faz
  • a resposta passa pela rede para o seu computador, que então a exibe.
  • a resposta não incluiu as imagens: o seu computador envia outra solicitação para as imagens, e praticamente o mesmo cenário acontece.
por 28.08.2009 / 18:48
6

Isso obviamente não é uma explicação técnica, mas é uma ajuda visual fofa (do excelente Vladstudio.com ) que pode ser útil para alguns:

    
por 19.06.2011 / 21:11
1

A informação que você acabou de pedir poderia preencher algumas dúzias de livros. Mas aqui está minha tentativa de explicá-lo: Seu navegador informa seu sistema operacional para encontrar o endereço IP do cnn.com. Em seguida, seu sistema operacional solicita a um servidor DNS o endereço IP de cnn.com. O IP é enviado para o broswer que contata o endereço IP e solicita a página. cnn.com, em seguida, envia você e página html. Os navegadores analisam o html e enviam as informações para o renderizador de HTML. O navegador informa ao SO o que exibir na tela.

    
por 28.08.2009 / 18:42
1

Jeff Moser teve uma excelente análise técnica de uma solicitação HTTPS em seu blog: Os primeiros poucos milissegundos de uma conexão HTTPS .

    
por 28.08.2009 / 18:47
1

Existe um vídeo muito legal do "Sendung mit der Maus" (um programa de TV infantil alemão muito popular que explica a tecnologia para crianças):

Die Sendung mit der Maus - Como funktioniert das Internet (Como funciona a Internet).

Em alemão apenas, infelizmente, mas engraçado mesmo sem o texto. Homens com capacetes engraçados tocam os pacotes IP e os dados são escritos em cartões de papel. Clássico: -).

BTW, as explicações são razoavelmente boas.

    
por 28.08.2009 / 19:11

Tags