Sobes.tech
Junior

Explique a diferença entre cookies, sessionStorage e localStorage.

sobes.tech IA

Resposta da IA

Os cookies armazenam pequenas quantidades de informação textual (até 4 KB) no lado do cliente, enviadas com cada pedido HTTP ao domínio que as estabeleceu. Podem ter um prazo de validade. São usados para autenticação, rastreamento de utilizadores, armazenamento de preferências do utilizador.

localStorage armazena dados sem prazo de validade (até o utilizador limpar o armazenamento ou fechar o navegador) no lado do cliente (até 5-10 MB dependendo do navegador). Os dados estão disponíveis entre sessões do navegador, mas apenas para scripts da mesma origem (domínio, protocolo, porta). Não são enviados automaticamente com pedidos HTTP. Usado para armazenamento a longo prazo e configuração da aplicação.

sessionStorage armazena dados durante uma sessão do navegador (enquanto a aba ou janela estiverem abertas). Os dados são eliminados ao fechar a aba ou janela. A capacidade de armazenamento é semelhante a localStorage (até 5-10 MB). Os dados também estão disponíveis apenas para scripts da mesma origem. Não são enviados automaticamente com pedidos HTTP. Usado para armazenamento temporário de dados específicos da sessão atual.

Característica Cookies localStorage sessionStorage
Prazo de armazenamento Data de expiração ou fecho do navegador Enquanto não forem apagados pelo utilizador/aplicação Enquanto a aba/janela estiver aberta
Tamanho dos dados Até 4 KB Até 5-10 MB Até 5-10 MB
Acessibilidade Enviadas com pedidos HTTP ao domínio Apenas via JavaScript da mesma origem Apenas via JavaScript da mesma origem
Acessibilidade entre abas Sim Sim Não (para diferentes abas)
Propósito Autenticação, rastreamento, preferências Armazenamento a longo prazo, configurações Armazenamento temporário na sessão

Exemplo de uso de localStorage:

// Guardar dados
localStorage.setItem('userName', 'Alice');

// Obter dados
const userName = localStorage.getItem('userName');
console.log(userName); // Output: Alice

// Remover dados
// localStorage.removeItem('userName');

// Limpar armazenamento
// localStorage.clear();

Exemplo de uso de sessionStorage:

// Guardar dados
sessionStorage.setItem('orderId', '12345');

// Obter dados
const orderId = sessionStorage.getItem('orderId');
console.log(orderId); // Output: 12345

// Remover dados
// sessionStorage.removeItem('orderId');

// Limpar armazenamento
// sessionStorage.clear();