1
resposta

[Dúvida] Cookie x Sessão

Olá Pessoal, tudo bem?

Sobre o tópico:

Formas de "lembrar" o servidor
Aprendemos que, por padrão, o servidor é stateless, logo ele não se lembra do que aconteceu em requisições anteriores. No entanto, existem algumas formas de o lembrarmos.

Uma das formas é o uso da sessão, que foi a abordagem que empregamos. Por exemplo, gerar um token e mostrá-lo ao servidor continuamente para ele lembrar quem está o acessando. A sessão é o tempo que a pessoa usuária permanece logada no sistema.

Outra forma é o uso de cookies. É comum a exibição de um pop-up na tela para a pessoa usuária aceitar ou rejeitar o uso de cookies em sites. Eles são um mecanismo utilizado nos cabeçalhos do HTTP para que o servidor peça para a pessoa cliente salvar algumas informações, que serão usadas posteriormente para lembrar o servidor.

Pelo que entendi o DEV pode escolher o uso de sessão ou cookie ? Optando por cookie as credenciais ficam então armazenadas nele? Quando usar um ou outro (sessão ou cookie) ou ambos se completam?

Obrigado.

1 resposta

Oii, tudo bem?

É bem comum confundir esses termos, pois eles frequentemente trabalham juntos para manter o usuário conectado.

Diferença entre Cookies e Sessões

A principal distinção tá em onde os dados são armazenados:

  • Cookies: São pequenos arquivos de texto armazenados no navegador do cliente (no seu computador ou celular). O servidor envia uma instrução para o navegador guardar essa informação e, em cada nova requisição, o navegador a envia de volta automaticamente.
  • Sessões: As informações ficam guardadas no servidor. O servidor cria um identificador único para você e guarda os detalhes (como quem você é) na memória dele ou em um banco de dados.

Eles se completam?

Sim, na maioria das vezes eles trabalham em conjunto. Quando você faz login em um site que usa sessões tradicionais, o servidor cria a sessão e envia um cookie para o seu navegador contendo apenas o ID da sessão. Assim, o navegador não guarda sua senha, apenas o "número do seu crachá".

No exemplo do curso com o Postman, você tá usando um Token (JWT). Nesse caso, o token carrega as informações necessárias e você o envia manualmente no cabeçalho Authorization.

Quando usar cada um?

CaracterísticaCookiesSessões (com Token/ID)
LocalizaçãoLado do cliente (Navegador)Lado do servidor
SegurançaMais vulnerável se contiver dados sensíveisMais seguro para dados críticos
CapacidadeEspaço limitado (aprox. 4KB)Praticamente ilimitada
Uso comumPreferências de tema, rastreamentoAutenticação, carrinho de compras

Onde ficam as credenciais? Nunca é recomendável guardar a senha diretamente em um cookie. O que fica armazenado é um token ou um ID de sessão que comprova que você já passou pela verificação de senha anteriormente.

Escolha do desenvolvedor: Hoje, pra aplicações e APIs (como a que você testou no Postman), o uso de Tokens (Bearer) é muito comum por ser escalável. Já os cookies são excelentes para sites que rodam puramente no navegador e precisam de uma gestão automática de login.

Espero que essa explicação tenha ajudado a organizar essas ideias.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!