El almacenamiento local y de sesión son métodos de almacenamiento del navegador que le permiten almacenar datos junto con solicitudes HTTP sin estado. Son una alternativa al almacenamiento basado en cookies y tienen muchos usos en el desarrollo web.
Si bien funcionan de manera muy similar, existen diferencias significativas que debe tener en cuenta.
Almacenamiento local y almacenamiento de sesiones: ¿cuáles son sus usos?
El almacenamiento local y de sesión son API de JavaScript que puede usar para almacenar datos en el lado del cliente. Permiten que un sitio web almacene datos en el navegador e instruya al navegador para acceder a ellos más adelante.
Según sus necesidades, puede usar almacenamiento local o de sesión para almacenar datos. Ambos métodos de almacenamiento son similares a las cookies pero sin las mismas preocupaciones de privacidad en torno a las cookies. Por lo tanto, la mayoría de los sitios web modernos prefieren usar solo métodos de almacenamiento web o combinarlos con cookies como respaldo.
A diferencia de las cookies, el almacenamiento local y el almacenamiento de sesiones no envían datos al servidor a través de encabezados HTTP. Debe usarlos solo para la funcionalidad del lado del cliente.
Además, el almacenamiento local y de sesión tienen un límite de almacenamiento de alrededor de 5 MB por dominio. Proporcionan más almacenamiento que las cookies, que solo tienen una capacidad de 4 KiB por cookie.
¿Qué es el almacenamiento de sesiones?
Una sesión de navegación se aproxima a su uso de un sitio web. Si visita un sitio, navega un poco y luego apaga su computadora, puede pensar en ese momento como una sola sesión. La configuración de su navegador puede cambiar esto de manera sutil, pero una sesión tiene como objetivo representar la porción de tiempo que interactúa con un sitio.
El almacenamiento de sesiones es único para cada pestaña del navegador. Si abre una nueva pestaña y navega al mismo sitio, comenzará una nueva sesión con su propio almacenamiento. Sin embargo, si utiliza una función de "pestaña duplicada" en su navegador, es posible que reutilice la misma sesión. No puede confiar demasiado en los detalles específicos de una "sesión". En su lugar, concéntrese en el concepto central: el almacenamiento de sesiones es temporal.
El almacenamiento de sesiones tiene métodos API incorporados para trabajar con datos de pares clave/valor. Puede almacenar datos de JavaScript al igual que:
sessionStorage.setItem("clave", "valor");
Y para recuperar el valor almacenado:
sessionStorage.getItem("clave");
Tenga en cuenta que ambos llave y valor son solo tipos de cadena. Si desea almacenar un tipo diferente, deberá convertirlo en una cadena, explícita o implícitamente.
¿Qué es el almacenamiento local?
El almacenamiento local mantiene los datos en todas las instancias de un sitio, ya sea que estén en diferentes pestañas o ventanas. También es permanente, por lo que los datos no desaparecerán al cerrar el navegador.
Cuando abre un sitio web que anteriormente usaba almacenamiento local, siempre tendrá acceso a esos datos almacenados.
Como desarrollador web, puede utilizar este mecanismo para retener datos sobre un usuario. Algunos sitios web pueden usar esto para mantenerlo conectado o brindarle una experiencia más personalizada.
Al igual que el almacenamiento de sesiones, puede configurar un objeto de almacenamiento local con una línea de código JavaScript:
localStorage.setItem("clave", "valor");
Para acceder al valor de la clave:
localStorage.getItem("clave");
Tenga en cuenta que estos métodos funcionan de la misma manera que el almacenamiento de sesiones, solo que usan un tipo diferente de almacén de datos.
Si bien el almacenamiento de la sesión borra los datos tan pronto como finaliza la sesión, la única forma de borrar el almacenamiento local es eliminarlo explícitamente. Ambos tipos de almacenamiento ofrecen dos métodos para borrar datos. El primero elimina un elemento específico de datos en función de su clave:
localStorage.removeItem("clave");
También puede eliminar todos los datos almacenados por su sitio, independientemente de su clave:
almacenamiento local.clear();
Puede obtener más información sobre estos métodos API de almacenamiento web en la javascript.info sitio web.
¿Cuándo necesita almacenamiento local?
Dado que el almacenamiento local es persistente, lo mejor es conservar los datos entre las visitas de los usuarios. Si desea almacenar preferencias de sitios o almacenar en caché datos a largo plazo, el almacenamiento local es apropiado. Es posible que no desee almacenar datos más confidenciales mediante el almacenamiento local, ya que es permanente.
Dado que el almacenamiento local y de sesión son métodos front-end, es posible que desee evitar usarlos para funciones basadas en servidor, como el inicio de sesión de usuario. Usted podría considerar las cookies como una alternativa en estos casos.
¿Cuándo necesita almacenamiento de sesiones?
Si desea almacenar datos solo mientras un usuario interactúa con su sitio, entonces el almacenamiento de sesión es ideal. Esto podría ser para almacenamiento en caché a corto plazo o datos de uso sobre una visita específica a su sitio.
El almacenamiento de sesión es mejor para almacenar información más confidencial ya que caduca.
Almacenamiento local vs. Almacenamiento de sesiones: ¿cuál es más seguro?
Como ha visto, los métodos de almacenamiento local y de sesión son similares en muchos aspectos, pero aún tienen casos de uso personalizados. No debe considerar ninguna de las dos seguras, ya que son tecnologías front-end a las que tiene acceso JavaScript. Sin embargo, el almacenamiento de sesiones es muy conveniente y su naturaleza temporal es tranquilizadora.
El almacenamiento local es permanente, por lo que puede plantear problemas de seguridad adicionales. Cualquiera que abra un navegador puede, en teoría, acceder al almacenamiento local. usted debe ser consciente de cómo funcionan los ataques XSS y cómo prevenirlos.
Almacenamiento local o almacenamiento de sesión: ¿cuál debe usar?
El almacenamiento de sesiones es un poco más seguro debido a su naturaleza temporal. Sin embargo, su elección del método de almacenamiento web depende de sus requisitos. El almacenamiento de JavaScript es más adecuado solo para el uso del lado del cliente. Pero ofrece un almacenamiento de datos conveniente basado en el navegador y es muy fácil de usar.
Recuerde que, si bien el almacenamiento local almacena datos en varias pestañas, el almacenamiento de sesión es único para cada pestaña, en su mayor parte. Debe asegurarse de que su aplicación haga la menor cantidad de suposiciones posible y se adapte a los casos extremos.
Las cookies son una forma más antigua de persistencia de datos, pero todavía se usan mucho. Es posible que desee consultarlos en busca de datos que necesite transmitir al servidor.