O session storage guarda dados no browser apenas enquanto um separador estiver aberto. Descobre como funciona, em que difere do local storage e para que os sites o usam.
E se um site se pudesse lembrar apenas do suficiente para tornar a tua visita fluida, sem guardar nada depois de saíres? Sem dados que sobram, sem preferências guardadas, nada que fique para trás. Só a informação certa no momento certo, e depois desaparece. Essa é a ideia do session storage, e é mais útil do que pode parecer à primeira vista.
Se já leste o capítulo sobre o local storage, sabes que ele mantém os dados vivos mesmo depois de o browser fechar. O session storage segue a abordagem oposta. Foi pensado para ser temporário, e isso não é uma limitação. É uma funcionalidade deliberada.
O que é o session storage?
O session storage é um tipo de armazenamento do browser que guarda dados durante a sessão de um separador do browser. Enquanto o separador se mantiver aberto, os dados estão disponíveis. No momento em que o visitante fecha esse separador, o session storage é limpo automaticamente. Abre o mesmo site num novo separador e o session storage começa do zero, sem nada lá dentro.
Tal como o local storage, o session storage funciona como um armazenamento de chave e valor. Os sites escrevem dados usando uma etiqueta e um valor, e obtêm-nos procurando a etiqueta. A diferença está apenas na duração dos dados. O local storage persiste indefinidamente. O session storage vive e morre com o separador.
Em que difere o session storage do local storage?
A diferença principal é a persistência. Os dados do local storage ficam no browser até serem apagados manualmente. Os dados do session storage desaparecem no momento em que o separador fecha. Isto torna-os adequados para situações diferentes.
O session storage também é específico de cada separador. Se um visitante tiver o mesmo site aberto em dois separadores diferentes, cada separador tem o seu próprio session storage separado. Não partilham dados entre si. O local storage, por outro lado, é partilhado por todos os separadores do mesmo site no mesmo browser.
Para que usam os sites o session storage?
Acompanhar o progresso dentro de uma sessão
Os formulários com vários passos e os processos de compra usam muitas vezes o session storage para guardar o progresso à medida que um visitante avança de um passo para o seguinte. Se voltar a um passo anterior, as respostas continuam lá. Quando a sessão termina, esses dados temporários desaparecem, que é exatamente o que queres para algo como um processo de compra.
Estado temporário da interface
Se uma barra lateral está aberta, que separador está selecionado ou até onde um visitante deslocou uma lista longa: são todos estados temporários que fazem sentido guardar durante uma visita, mas não têm valor depois de o visitante sair. O session storage trata disto de forma limpa.
Manter o contexto sensível de curta duração
Para tudo o que se relaciona com o contexto atual de um utilizador durante uma visita, o session storage é a escolha mais segura em comparação com o local storage, porque os dados se limpam sozinhos. Não há risco de contexto sensível ficar no browser depois de a visita terminar.
Quando usar session storage em vez de local storage
A escolha resume-se a uma pergunta: estes dados precisam de sobreviver para além da sessão atual do separador? Se sim, o local storage é a ferramenta certa. Se os dados só são relevantes durante a visita atual e não devem continuar, o session storage é a melhor opção.
Para dados sensíveis, nenhum dos dois é adequado. Palavras-passe, dados de pagamento e informação pessoal devem ser sempre tratados no servidor, com a devida encriptação SSL, e nunca guardados no browser. Para uma visão completa de todas as opções de armazenamento do browser e de como se comparam, lê tipos de armazenamento do browser.
Perguntas frequentes
O session storage é limpo quando o browser fecha ou apenas o separador?
O session storage é limpo quando o separador específico é fechado. Se um visitante tiver vários separadores abertos e fechar um, só o session storage desse separador é limpo. Os outros separadores mantêm o seu próprio session storage. Se o browser inteiro for fechado, todo o session storage de todos os separadores é apagado, porque todas as sessões ativas terminam nesse momento.
Dois separadores do mesmo site podem partilhar o session storage?
Não. O session storage é isolado por separador. Se o mesmo site estiver aberto em dois separadores diferentes, cada separador tem o seu próprio session storage, que o outro separador não consegue ler nem escrever. É diferente do local storage, que é partilhado por todos os separadores do mesmo site no mesmo browser.
O session storage é mais seguro do que o local storage?
É ligeiramente melhor para contexto sensível, porque os dados são limpos automaticamente quando o separador fecha. Mas continua acessível a qualquer script que corra na página, o que significa que não é adequado para palavras-passe, dados pessoais ou dados de pagamento. A limpeza automática reduz a janela de exposição, mas aplicam-se as mesmas regras básicas de segurança. Os dados sensíveis pertencem ao servidor, e não ao browser.
O que acontece ao session storage se um visitante atualizar a página?
Atualizar a página não limpa o session storage. Os dados persistem através dos recarregamentos da página enquanto o separador se mantiver aberto. Isto torna o session storage útil para guardar o estado entre atualizações dentro da mesma visita, como manter um formulário parcialmente preenchido, sem que esses dados continuem depois de o visitante sair.
Quantos dados pode guardar o session storage?
O session storage tem aproximadamente a mesma capacidade do local storage, cerca de 5 a 10 megabytes por separador, consoante o browser. É mais do que suficiente para estados temporários da interface e dados de formulários em curso. Para conjuntos de dados maiores ou ficheiros, o IndexedDB é mais adequado.
Preciso de configurar o session storage no meu site?
Não, se usares um criador de websites. O session storage é usado internamente pela plataforma para coisas como gerir o estado dos formulários e as preferências durante a sessão. Corre em segundo plano, sem qualquer configuração da tua parte. Com o criador de websites da WEMASY, a plataforma trata automaticamente de todas as decisões de armazenamento do browser, para os teus visitantes terem uma experiência fluida sem precisares de configurar nada.