O que exatamente acontece passo a passo de quando eu digito uma URL no meu navegador para quando uma página é carregada? [fechadas]

2

Recentemente me perguntaram isso em uma entrevista de emprego, especificamente quando eu digito facebook.com. Eu não tenho certeza do que o entrevistado estava procurando exatamente desde que eu estava me candidatando a uma posição de programação, mas como alguém pode responder a essa pergunta em alto nível?

    
por KingKongFrog 04.04.2013 / 01:13

4 respostas

4

Visão geral de alto nível de uma solicitação HTTP do navegador:

  1. Você insere "facebook.com" na barra de endereço.
  2. O navegador resolve isso para o endereço IP numérico (isso pode ser armazenado em cache pelo sistema operacional ou exigir uma saída para um servidor DNS).
  3. O navegador emite uma solicitação "HTTP / GET". Ele passa um HttpRequest que inclui metadados sobre o navegador, preferências do usuário (como o idioma preferido) e quaisquer cookies armazenados para esse domínio.
  4. Os servidores do Facebook recebem a solicitação e o código deles começa a criar uma resposta.
    • O Facebook usará as informações fornecidas, incluindo cookies, para determinar quem é o usuário e quais informações enviar novamente
  5. Uma resposta HTTP é retornada do Facebook, incluindo uma linha de status (200 OK, etc). Cabeçalhos que incluem o tipo de conteúdo, etc e o corpo HTML.
  6. O navegador recebe a resposta e começa a analisá-la para exibição.
    • O corpo HTML incluirá links para CSS, JS e imagens. Todos eles acionarão chamadas adicionais de volta aos servidores para recuperar esses bits
  7. O mecanismo de layout do navegador começará a montar a página final para exibição.
    • As informações de CSS podem alterar o layout e a aparência da página
    • JS e DHTML podem alterar o layout da página
  8. A página final é montada e renderizada para o usuário final.

O artigo Hypertext Protocol da wikipedia é um bom ponto de partida para o ciclo de vida de uma solicitação HTTP.

    
por 04.04.2013 / 02:18
1

Desde que você não mencionou se isso é específico de programação, rede ou sistema operacional específico, escolhi assumir que se trata de um nível de rede.

Quando você digitar o endereço do site que deseja ver e pressionar Enter, seu computador / navegador verificará primeiro se o endereço IP desse domínio está em cache em algum lugar, no nível do navegador ou do sistema operacional. Caso contrário, ele tentará resolver o endereço IP do nome de domínio desses sites entrando em contato com um servidor DNS. Seu sistema operacional é manual ou automaticamente através do DHCP configurado com o endereço IP de um ou mais servidores DNS com os quais ele pode entrar em contato.

Em determinado momento, o servidor DNS consultado responderá com o endereço IP do servidor / dispositivo associado ao nome de domínio digitado. Agora, os pacotes TCP / IP podem ser construídos e enviados pela rede ao domínio que você digitou para começar a se comunicar e a transferir dados para fornecer o conteúdo solicitado.

    
por 04.04.2013 / 01:26
1

Como quase todas as perguntas da entrevista, o entrevistador não estava procurando por uma resposta específica, mas queria ver seu nível de compreensão do processo e levá-lo a orientá-lo em seu processo de pensamento. Provavelmente, eles estavam procurando identificar os vários componentes (navegador, ISP, HTTP, TCP, DNS, kernel, servidor da Web) e explicar como eles interagiam.

    
por 04.04.2013 / 03:13
0

Eu vou dar uma chance, embora possa (obviamente) variar muito de site para site, navegador para navegador e exatamente o que ele queria ou a direção que ele estava vindo. Um gerente de contratação pode querer uma abordagem muito detalhada de todo o processo e sua familiaridade com o Facebook (se você fosse potencialmente trabalhar em um plug-in do Facebook) com o qual não estou muito familiarizado. Vou deixar de fora as coisas do processo.

  1. Digite "Facebook.com" na barra de endereço
  2. o DNS deve ser resolvido para
  3. Como o Facebook carrega, ele detectará ou criará cookies com base em se o usuário já esteve lá antes
  4. Se houver cookies, o Facebook poderá fazer login do usuário, caso contrário, a página de login será apresentada e / ou a página de inscrição.
  5. Login do usuário, endereço de email com diferenciação de maiúsculas e minúsculas e uma caixa de senha secureString com máscara são usados
  6. O botão Login é selecionado, a senha segura é salgada, hash e comparada com a senha armazenada adequada para o nome de usuário apresentado, e confirma que ambos correspondem a um registro.
  7. Se for bem sucedido, mostre o Facebook 'WALL', caso contrário, mostre uma mensagem com falha e aguarde novamente. O JS deve armazenar uma tentativa inválida para um máximo de X tentativas, bem como gravar no registro do usuário para tentativas inválidas em caso de força bruta.
por 04.04.2013 / 01:35

Tags