O seu site de compras, a sua rede social, o sistema de ponto da sua empresa ── as páginas que você usa sem pensar recebem você ainda logado, mesmo depois de fechar o navegador e voltar no dia seguinte. E, no entanto, o servidor que trabalha por trás delas não está de fato lembrando de você. A realidade é o contrário: os servidores tendem a esquecer você ── mais precisamente, eles zeram a memória toda vez que respondem a uma requisição. A experiência cotidiana de «ser lembrado» é, olhando de perto, bem estranha.
Então por que continuamos logados? A resposta é o cookie ── o mesmo do aviso «Aceitar cookies?» que todo site mostra para você. Se algo da lista abaixo soa familiar, continue lendo.
- Você clica no aviso de «Aceitar cookies?» no reflexo, toda vez, sem saber o que ele significa
- Você não sabe explicar por que continua logado ── ou, ao contrário, por que de repente é deslogado
- Você não sabe por que abrir o mesmo site em outro PC ou no celular mostra você deslogado
- Alguém disse «tenta apagar os cookies» ── mas você não sabe bem o que apagar os cookies realmente faz
Este artigo faz duas promessas. ① Vamos manter o jargão no mínimo. ② Não vamos parar no funcionamento: chegaremos às decisões práticas ── o que clicar no aviso de consentimento e o que acontece se você apagar os cookies.
| Pergunta | Onde é respondida |
|---|---|
| O que significa «os servidores tendem a esquecer você»? | §1 |
| O que é exatamente um cookie? | §2 |
| Como funciona de verdade continuar logado? | §3 |
| O que «Aceitar cookies?» está perguntando de verdade? | §4 |
| Cookies são perigosos? | §5 |
| O que acontece se eu apagá-los? | FAQ Q1 |
Na retrospectiva da série, O que acontece entre digitar uma URL e a página aparecer?, acompanhamos um acesso como «a viagem de ida e volta de uma única requisição». Este artigo retoma a pergunta que vem em seguida ── se cada requisição e cada visita se completa sozinha, por que o site lembra de você?
1. O servidor esquece você toda vez ── HTTP foi projetado para não lembrar
1-1. A ida e volta de uma requisição se completa sozinha, toda vez
Quando você abre uma página web, uma requisição viaja pelo mundo, chega ao servidor e uma resposta volta (a viagem completa está em O que acontece entre digitar uma URL e a página aparecer?). Aqui está a parte que importa: essa ida e volta é a história inteira. Quando você clica em mais um link, é uma viagem totalmente nova ── e, do ponto de vista do servidor, uma requisição de um completo desconhecido.
Em metáfora: o servidor é um atendente de balcão cuja memória se apaga no momento em que cada atendimento termina. Visite dez vezes em um minuto, e dez vezes ele vai recebê-lo com «Bem-vindo! Primeira vez aqui?». Essa propriedade se chama ser sem estado (stateless) e faz parte do projeto básico do HTTP.
Parece um defeito, mas é proposital. Um balcão que não lembra pode atender qualquer pessoa com o mesmo procedimento ── simples, rápido e capaz de servir ao mesmo tempo multidões enormes do mundo inteiro. Abrir mão desde o início do trabalho de «lembrar» é uma das razões pelas quais a web pôde crescer tanto.
1-2. Então por que a web parece lembrar de você?
Mas isso cria uma contradição. Continuar logado, os itens esperando no seu carrinho, o seu modo escuro sobrevivendo entre as visitas ── se o atendente encontra você como desconhecido toda vez, nada disso deveria acontecer.
O balcão sem memória vs o que você realmente vive Como a engrenagem funciona (sem estado) Visita 1: Você ──> Servidor: «Prazer em conhecer» Visita 2: Você ──> Servidor: «Prazer em conhecer» △ Zero memória, toda vez Visita 3: Você ──> Servidor: «Prazer em conhecer» O que você realmente vive Visita 1: Você faz login Visita 2: Continua logado △ De algum jeito, lembram de você No dia seguinte: Continua logado
O dispositivo que fecha essa lacuna é o protagonista deste artigo: o cookie. A resposta em uma linha, adiantada ── quem lembra não é o servidor. É o seu navegador.
2. O que um cookie realmente é ── um cartão de sócio que a loja entrega a você
2-1. A loja desiste de lembrar e entrega um cartão ao cliente
Mesmo um atendente cuja memória se apaga consegue distinguir os clientes. O truque: fazer o cliente carregar um cartão e mostrá-lo a cada visita.
Isso é exatamente um cookie. Na primeira vez que você visita um site, o servidor anexa um bilhete à resposta ── «guarde isto, por favor» (Set-Cookie). O seu navegador guarda o cartão na carteira dele (uma área de armazenamento do seu PC) e, na próxima vez que enviar uma requisição para esse mesmo site, apresenta o cartão automaticamente. O atendente tem zero memória, mas uma olhada no cartão já diz «ah, o cliente que tem este cartão» ── uma loja que emite um cartão de sócio e um cliente que o mostra a cada visita.
O cartão em si é só uma cadeia curta de texto em uma nota. Não é um programa, então o cartão não consegue executar nada sozinho ── isso vai importar de novo no §5.
2-2. As regras do cartão ── mostrado apenas à loja que o emitiu, automaticamente
Os cartões de sócio seguem duas regras básicas.
Primeira: um cartão só é mostrado à loja que o emitiu. O cartão que o site A deu a você é anexado apenas às requisições que vão para o site A. O cartão de fidelidade do seu supermercado não vale nada na livraria (── essa é a regra no que diz respeito ao §2. No §4, veremos que a «brecha» dessa regra é exatamente o assunto do aviso de consentimento).
Segunda: cartões expiram. Há dois tipos: cartões jogados fora quando você fecha o navegador (cookies de sessão) e cartões que ficam na carteira até uma data marcada (cookies persistentes). A caixinha «manter conectado» é, em linhas gerais, uma escolha entre esses dois.
A ida e volta do cartão de sócio ── da emissão à apresentação automática Primeira visita Você ──«Prazer»──────────────────────> Site A Você <──«Bem-vindo! Guarde este cartão»── Site A △ Cartão emitido (Set-Cookie) Cada visita seguinte Você ──«Olá de novo» + [cartão] ──> Site A △ Anexado automaticamente pelo navegador Você <──«Bem-vindo de volta»──────── Site A Visitando outra loja Você ──«Prazer»─────────────────────> Site B △ O cartão do site A não é anexado
3. Como funciona continuar logado ── o cartão só carrega um número
3-1. Um bilhete numerado e um livro de registro ── o que um ID de sessão realmente é
Dissemos que «uma olhada no cartão basta» ── mas o cartão não tem escrito nem o seu nome nem a sua senha. O mecanismo de login é um degrau mais engenhoso.
Quando você digita a senha e o login dá certo, o servidor escreve uma linha no livro de registro dele ── «Cliente n.º 8472 = a sua conta, logado». Depois, entrega a você um bilhete numerado com apenas esse número de linha. Dali em diante, toda vez que o seu navegador apresenta o bilhete, o servidor procura o n.º 8472 no livro e sabe «é esta pessoa, já logada» ── esse número é o ID de sessão, e o livro é a sessão do lado do servidor.
Esse projeto tem duas vantagens. A sua senha nunca está no bilhete: mesmo que alguém veja o bilhete, a senha não vaza (FAQ Q5). E você não precisa redigitar a senha toda vez ── apresentar o bilhete continua a verificação de identidade por você. Aliás, esse «bilhete numerado» é um tipo do mecanismo chamado token ── o nosso guia Senha vs UUID vs Hash vs Token organiza como ele difere de senhas e hashes.
- 1LoginSenha verificada. O servidor escreve uma linha no livro de registro.
- 2Bilhete emitidoUm bilhete que carrega só o número da linha (o ID de sessão) é entregue como cookie.
- 3Cada visita seguinteO navegador apresenta o bilhete automaticamente. O servidor confere com o livro: «logado».
- 4O fimLogout (a linha do livro é apagada) ou o bilhete expira ── de volta a serem desconhecidos.
3-2. Os mistérios se resolvem sozinhos: deslogado de repente, e desconhecido em outro PC
Com o bilhete e o livro de registro, os mistérios do dia a dia se desfazem de uma vez.
Ser deslogado de repente significa que o bilhete ou o livro expirou. O bilhete passou da data, o servidor limpou linhas antigas do livro, um «sair de todos os dispositivos» apagou a sua linha, ou uma limpeza do navegador jogou o bilhete fora ── as causas variam, mas o evento é o mesmo: o bilhete e o livro não batem mais.
Aparecer deslogado em outro PC ou celular acontece porque o bilhete mora na carteira daquele navegador. Outra carteira, nenhum bilhete ── então um dispositivo novo significa começar de novo pela senha. Mesmo no mesmo PC, trocar de navegador faz de você um desconhecido, porque cada navegador guarda a própria carteira.
O lado que guarda o livro de registro ── ou seja, o que um servidor realmente é ── rende um artigo inteiro. Planejamos cobrir isso em um post futuro.
4. O que «Aceitar cookies?» está perguntando de verdade ── o cartão de sócio da empresa de publicidade
4-1. Se todo cartão fosse de um site só, o aviso nunca teria existido
Até agora, todos os cartões eram «só para aquele site». O cartão do site A é mostrado apenas ao site A ── os cookies usados dentro desse limite se chamam cookies primários (first-party) e são eles que fazem funcionar logins, carrinhos e preferências lembradas. Sinceramente, se o mundo só tivesse esses, o aviso de consentimento nunca teria nascido.
4-2. Mostrar o mesmo cartão entre sites ── cookies de terceiros e rastreamento
O problema é que uma página não é construída só com «aquele site». Muitas páginas incorporam peças de outras empresas (geralmente de publicidade) ── espaços de anúncio, trechos de análise de audiência. Quando você abre a página, o seu navegador também envia requisições ao servidor da empresa de publicidade para buscar essas peças ── e, pela regra do §2, o cartão emitido pela empresa de publicidade é anexado às requisições que vão para a empresa de publicidade.
Aqui está a armadilha. E se o site de notícias, o de receitas e o de compras incorporarem peças da mesma empresa de publicidade? Então, abra o site que abrir, você está mostrando o mesmo e único «cartão de sócio da empresa de publicidade» aonde quer que vá. O livro de registro da empresa de publicidade acumula um rastro: «Pessoa n.º 551: notícias → receitas → a página de sapatos da loja» ── esse é o mecanismo real por trás de «o produto que eu vi ontem está me seguindo em outros sites», e os cartões que cruzam sites assim são os cookies de terceiros (third-party).
Primários vs de terceiros ── quem vê qual cartão Primários (o cartão do próprio site) Site de notícias ──> [cartão de notícias] △ Fica dentro daquele site Site de compras ──> [cartão de compras] De terceiros (o cartão da empresa de publicidade) Site de notícias ┐ Site de receitas ├── em toda página ──> [o mesmo cartão da publicidade] Site de compras ┘ △ O rastro conecta os sites
É principalmente sobre isso que o aviso de «Aceitar cookies?» pergunta. Os cartões do próprio site (os que logins e preferências precisam) costumam ser tratados como «estritamente necessários», e o que de fato pedem que você escolha é aceitar ou não os cartões de publicidade e análise. Por isso, clicar em «Rejeitar» deixa as funções principais do site funcionando normalmente (FAQ Q3).
A propósito, o vento virou contra esse mecanismo de rastreamento: os fabricantes de navegador estão aposentando os cookies de terceiros, passo a passo. Pense nisso como um retorno à regra original do cartão ── mostrado apenas ao site que o emitiu ── e você já sabe o suficiente.
5. Cookies são perigosos? ── o cartão em si é inofensivo; o que importa é como ele é manuseado
5-1. Traçando a linha ── o lado inofensivo e o lado que pede cuidado
A imagem de «cookies = algo perigoso» é metade mal-entendido, metade verdade. Como no nosso artigo sobre HTTPS, vamos traçar a linha com uma tabela.
| Pode ficar tranquilo ✅ | Pede cuidado ❌ | |
|---|---|---|
| O que o cartão é | Uma nota curta de texto. Não é um programa ── não consegue executar nada, estilo vírus | ── |
| Quem o vê | Mostrado apenas ao site que o emitiu (primário) | ── |
| Espionagem no caminho | O cartão viaja dentro da caixa secreta (HTTPS) e não pode ser lido no caminho | ── |
| Roubo do bilhete | ── | Se outra pessoa usar o seu bilhete numerado, ela fica logada como você, sem senha ── o risco real de esquecer de sair em um PC compartilhado |
| Rastros de comportamento | ── | Os cartões da empresa de publicidade (de terceiros) viram um registro do seu rastro entre sites (§4) |
| Apagá-los | ── | Jogue fora todos os cartões e cada site volta a tratar você como desconhecido (FAQ Q1) |
5-2. As conclusões práticas
Traduzir a tabela em comportamento cotidiano dá três regras.
Primeira ── em dispositivos compartilhados ou emprestados, sempre saia da conta ao terminar. O logout apaga a linha do livro, então mesmo um bilhete esquecido fica inútil. Só fechar o navegador pode deixar o bilhete na carteira.
Segunda ── nos avisos de consentimento, «apenas os necessários» ou «Rejeitar» está perfeitamente bem quando a opção existe. Os cartões do próprio site permanecem, então fazer login e comprar continuam funcionando como sempre.
Terceira ── não é preciso ter medo dos cookies em si. O cartão é uma nota, não um programa, e a caixa secreta o protege no trajeto. As duas coisas que merecem a sua atenção: não deixar outras pessoas manusearem fisicamente os seus bilhetes, e decidir quais livros de registro podem anotar o seu rastro.
Resumo ── a essência em 4 linhas
- O servidor esquece, toda vez: HTTP é sem estado ── a memória do atendente se apaga após cada atendimento. Não lembrar é o que o torna rápido e massivamente escalável
- Um cookie é um cartão de sócio: quem lembra é o navegador ── ele guarda o cartão que um site emitiu e o apresenta automaticamente, só para aquele site
- Login é um bilhete numerado mais um livro de registro: o bilhete carrega só um número de linha (o ID de sessão), nunca a sua senha ── e «deslogado» significa que o bilhete e o livro pararam de bater
- A verdadeira pergunta do aviso é o cartão da empresa de publicidade: os cartões do próprio site são «necessários»; o que você escolhe é o rastreamento entre sites, e rejeitá-lo deixa as funções principais funcionando
Para seguir na série ── a viagem completa de uma requisição está na retrospectiva da série, a caixa que protege o cartão no trajeto está no artigo sobre HTTPS, e como o bilhete numerado (token) difere de senhas e hashes está no guia de strings aleatórias.
FAQ
Q1. O que acontece se eu apagar todos os meus cookies?
A. Todos os sites voltam a tratar você como desconhecido ── concretamente, você é deslogado em todo lugar, o conteúdo do carrinho e as preferências de «não mostrar de novo» somem, e os avisos de consentimento voltam a aparecer. Nada quebra: faça login de novo e tudo funciona como antes. A razão de «tenta apagar os cookies» ser um conselho clássico de suporte é que isso zera qualquer descompasso entre bilhetes velhos e o livro de registro.
Q2. O que está realmente acontecendo no modo anônimo (navegação privada)?
A. Você está navegando com um crachá de visitante temporário. Cada cartão de sócio e cada bilhete numerado recebidos dentro da janela anônima expiram no momento em que você a fecha ── tudo é descartado de uma vez, e por isso nem histórico nem cartões ficam no seu dispositivo. Mas, enquanto usa o crachá, você parece exatamente o mesmo de sempre. Faça login dentro dessa janela, e o crachá passa a carregar, na prática, o seu nome: o livro de registro do site sabe que é você, como sempre. O que a rede vê no caminho também não muda. O modo anônimo não torna você anônimo ── a única coisa que muda é que nada fica para trás no seu dispositivo.
Q3. Se eu clicar em «Rejeitar» no aviso de consentimento, o site vai parar de funcionar?
A. Em quase todos os casos, ele continua funcionando normalmente. O aviso pergunta principalmente sobre os cartões de publicidade e análise (de terceiros); os cartões do próprio site, usados para login e carrinho, costumam ser classificados como «estritamente necessários» e não entram na rejeição (§4). Você ainda pode ver anúncios depois de rejeitar ── só que são anúncios não adaptados ao seu rastro.
Q4. Qual é a diferença entre cookies e cache? Eles sempre são apagados juntos.
A. Trabalhos completamente diferentes. O cookie é o cartão de sócio que diz quem você é; o cache é o reaproveitamento de pacotes (imagens e afins) que você já recebeu uma vez. Apagar também difere: apague os cookies e você é deslogado; limpe o cache e as páginas só carregam mais devagar por um tempo. Como o cache funciona ── a verdadeira história por trás de «atualizei mas nada mudou» ── rende um artigo próprio, planejado para um post futuro.
Q5. A minha senha de verdade fica guardada dentro de um cookie?
A. Não. Como o §3 mostrou, o bilhete carrega apenas um número de linha do livro (o ID de sessão); a sua senha é usada para verificar a identidade no momento do login e nunca viaja no bilhete. Dito isso, «não tem senha dentro, logo é seguro» também não se sustenta ── se o próprio bilhete numerado for roubado, quem o tiver pode agir como você até ele expirar. O básico para proteger os seus bilhetes: saia da conta em PCs compartilhados e não deixe outras pessoas manusearem o seu dispositivo.

Leave a Reply