O que são cookies?

A Web foi projetada para que cada solicitação de um navegador da Web para um site seja separada. Por design, a Web não tem "memória". Toda vez que você abre uma página da Web, o site que você está visitando não consegue lembrar as informações da sua última sessão. Isso ajuda a tornar a Web eficiente e simples, já que não é necessário um mecanismo para rastrear solicitações e respostas.

Mas a natureza esquecida da Web também apresenta um problema. Por exemplo, como um carrinho de compras pode funcionar se o site em que você está não consegue lembrar o que você acabou de colocar nele?

Os cookies foram inventados para resolver esse problema.

Os cookies dão memória aos sites

Quando você visita uma página em um site, seu navegador faz solicitações ao servidor do site para os recursos incluídos na página, como HTML, CSS, JavaScript ou imagens.

Os navegadores da Web e os sites interagem seguindo o protocolo HTTP. É um conjunto padronizado de regras para comunicação.

Em resposta a uma solicitação HTTP de um recurso, o servidor do site pode incluir informações extras chamadas cabeçalhos junto com o próprio recurso. Um cabeçalho Set-Cookie incluído em uma resposta HTTP informa ao navegador para armazenar um texto: um nome e um valor. Isso é conhecido como cookie. Por exemplo, o cabeçalho de resposta Set-Cookie:cat=tabby informa ao navegador para armazenar um cookie com o nome "cat" e o valor "tabby".

Depois que o cookie for definido, as solicitações subsequentes do navegador para o site vão incluir o cabeçalho Cookie:cat=tabby. O servidor do site pode acessar o cookie do cabeçalho da solicitação e usar o valor.

Como os cookies funcionam: passo a passo

Imagine que você acesse o site cats.example. O site quer mostrar uma imagem aleatória de um gato e manter um registro de qual gato foi mostrado para você.

As etapas a seguir explicam como isso pode ser feito com cookies.

1. O navegador solicita um arquivo

Você visita a página inicial do site cats.example.

O navegador solicita os arquivos na página, incluindo cat.jpg de cats.example.

Uma solicitação HTTP para https://cats.example/cat.jpg

2. O servidor do site responde

O servidor em cats.example responde com o arquivo de imagem cat.jpg.

Com a resposta, o servidor inclui um cabeçalho: Set-Cookie:cat=tabby.

Uma resposta HTTP de https://cats.example/cat.jpg, com um cabeçalho Set-Cookie:cat=tabby

3. O navegador recebe uma resposta

O navegador recebe o arquivo de imagem e processa o cabeçalho Set-Cookie:cat=tabby incluído.

Um cookie é armazenado: nome cat, valor tabby.

O cookie cat=tabby em um navegador da Web em um laptop.

4. O navegador faz solicitações adicionais

A partir de agora, o navegador vai incluir o cabeçalho Cookie:cat=tabby com solicitações para cats.example.

Uma solicitação HTTP para https://cats.example/cat.jpg, com um cabeçalho Cookie:cat=tabby

Quando o servidor da Web cats.example recebe uma solicitação, ele pode processar o cookie e fazer o que quiser com esse valor, como garantir que não envie uma imagem do mesmo gato malhado novamente.

Confira todo o processo de cookies:

  1. Seu navegador faz uma solicitação a um site para um arquivo.
  2. O servidor do site pode incluir um cabeçalho, como Set-Cookie:cat=tabby, com o arquivo enviado em resposta à solicitação.
  3. Quando o navegador recebe a resposta, ele armazena o cookie.
  4. Com cada solicitação subsequente, o navegador envia o cookie para o servidor em um cabeçalho Cookie:cat=tabby.


Diagrama de sequência mostrando
  solicitações e respostas entre um navegador da Web, cats.example e cats.example,
  mostrando como os cookies são definidos e enviados.

Acessar cookies com JavaScript

O exemplo anterior usa o cabeçalho de resposta Set-Cookie para definir um cookie.

Os cookies também podem ser criados com JavaScript usando o método document.cookie.

Teste a demonstração: javascript-cookie.glitch.me/.

Saiba mais: Documento: propriedade de cookie.

Por que precisamos de cookies?

Em 1994, o engenheiro Lou Montulli trabalhava na empresa de software Netscape, que passou a criar o navegador da Web mais popular de meados dos anos 1990. Enquanto isso, uma empresa de telecomunicações, a MCI, estava tentando criar um recurso de carrinho de compras para uma das primeiras lojas on-line do mundo. A MCI entrou em contato com Montulli para explicar o problema. Montulli respondeu adicionando um recurso ao HTTP que permitia que um site armazenasse uma pequena quantidade de texto no navegador da Web de um usuário, um nome e um valor: algo como cart-id=123. Ele chamou de "cookie", já que naquela época os programadores usavam a palavra "cookie mágico" para uma pequena quantidade de informações extras incluídas na comunicação de dados.

Lou concluiu o trabalho com cookies HTTP em menos de uma semana. Ele não sabia que os cookies seriam fundamentais para publicidade, login, pagamentos, detecção de fraudes e outros serviços essenciais da Web. Os cookies são uma tecnologia muito simples que tem efeitos colaterais de longo alcance.

Usos de cookies

Os cookies permitem que o navegador armazene uma pequena quantidade de informações sobre o usuário para "lembrar" algo em várias solicitações. Os cookies têm vários usos:

  • Gerenciamento de sessões
    Permite que um site reconheça um usuário, por exemplo, para manter um estado de login em diferentes páginas.
  • Personalização
    Armazene as preferências do usuário, como idioma, tema ou itens visualizados recentemente, para personalizar a experiência do site.
  • Rastreamento
    Historicamente, os cookies foram usados para rastrear o comportamento do usuário em vários sites, para publicidade segmentada e outros casos de uso.

Em vez disso, os cookies geralmente são usados para armazenar e comunicar identificadores que são processados pelo servidor. Por exemplo, um cabeçalho com uma solicitação para um serviço de análise da Web pode incluir um cookie como este:

Cookie: _analytics=ANALYTICS1.2.34567890.123456789

O servidor de análise que recebe a solicitação pode processar o identificador, além de outras informações sobre a página.

Saiba mais