Solicitação e resposta HTTP

Os navegadores da Web interagem com os sites seguindo o protocolo HTTP. Este é um conjunto padronizado de regras para comunicação:

  • Quando você acessa uma página da Web, o navegador envia solicitações HTTP para os recursos da página, como HTML, CSS, JavaScript e imagens.
  • Quando um servidor HTTP (um servidor da Web que hospeda um site) recebe uma solicitação HTTP válida de um navegador, ele responde com uma resposta HTTP.
  • As solicitações e respostas podem incluir informações extras conhecidas como cabeçalhos HTTP.

Por exemplo, considere o site cats.example.

O site mítico cats.example.

Solicitação

O acesso à página cats.example inicia uma cadeia de solicitações para vários domínios. Isso inclui uma solicitação de uma imagem hospedada no próprio cats.example, uma solicitação de um script de análise do analytics.example e outras solicitações de recursos adicionais de outros domínios.

As solicitações HTTP podem ser aumentadas com cabeçalhos de solicitação HTTP para fornecer informações complementares do navegador ao servidor da Web. Por exemplo, cabeçalhos como os seguintes são incluídos com frequência:

  • Accept-Language: en-US
    Esse cabeçalho indica o idioma preferido do usuário, neste caso, inglês (Estados Unidos).
  • User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
    Esse cabeçalho fornece detalhes sobre o navegador e o sistema operacional do usuário, neste caso, "Mozilla/5.0" (família de navegadores), "Macintosh" (sistema operacional) e "Chrome/127.0.0.0" (versão do navegador).

Resposta

Quando um servidor da Web recebe uma solicitação válida de um navegador, ele envia ao navegador uma resposta que fornece o recurso solicitado (o "payload"): HTML, CSS, JavaScript, um arquivo de imagem, vídeo ou outros dados. Assim como cada solicitação do navegador pode incluir cabeçalhos de solicitação, cada resposta do servidor pode incluir cabeçalhos de resposta. Esses cabeçalhos de resposta são enviados com o payload.

Um cabeçalho Set-Cookie incluído em uma resposta informa ao navegador para armazenar um texto: um nome e um valor. Isso é conhecido como cookie HTTP. Em resposta à solicitação de cats.example/images/cat.jpg, o servidor cats.example inclui o cabeçalho Set-Cookie:cat=tabby. Isso instrui o navegador a armazenar um cookie chamado "cat" com o valor "tabby".

Esse cookie será incluído em solicitações subsequentes para cats.example, até que expire ou seja removido. Isso permite que o servidor mantenha informações sobre o usuário em várias páginas da Web ou sessões. Por exemplo, que o usuário viu a imagem de um gato malhado.


Cabeçalho Ação Exemplo Efeito
Resposta HTTP
Servidor para navegador
Set‑Cookie O servidor da Web pede ao navegador para armazenar um cookie. Set‑Cookie:cat=tabby O cookie é armazenado pelo navegador e fornecido em solicitações subsequentes ao servidor que o definiu.
Solicitação HTTP
Navegador para servidor
Cookie Seu navegador fornece um cookie. Cookie:cat=tabby O cookie é disponibilizado para o servidor que é o destino da solicitação.

Demonstrações

Ferramentas

Saiba mais