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();