web-dev-qa-db-fra.com

localStorage vs sessionStorage vs cookies

Je travaille dans une application où je dois conserver certaines données pendant que l'utilisateur est connecté et j'ai cette question, quelle est la différence entre LocalStorage, sessionStorage, cookies?

Je demandais ce que je pouvais utiliser pour conserver certaines données dans le DOM, même si l'utilisateur actualisait la page, certaines personnes disent: utilisez sessionStorage, ou localStorage, alors, quelqu'un a eu l'idée d'utiliser ngCookies parce que cela fonctionne dans tous les navigateurs, mais que dois-je utiliser?

55
Non

localStorage et sessionStorage sont tous deux appelés WebStorages et des fonctionnalités de HTML5.

localStorage stocke les informations tant que l'utilisateur ne les supprime pas.

sessionStorage stocke les informations aussi longtemps que la session se poursuit. Habituellement, jusqu'à ce que l'utilisateur ferme l'onglet/le navigateur.

les cookies sont simplement des cookies, qui sont pris en charge par les anciens navigateurs et constituent généralement un secours pour les infrastructures qui utilisent le WebStorages .

En revanche, les cookies peuvent stocker beaucoup moins d'informations que WebStorages et les informations contenues dans WebStorages ne sont jamais transférées sur le serveur.

Gardez à l'esprit que l'UE dispose d'un règlement qui oblige les sites web à informer leurs utilisateurs de l'utilisation des cookies. Je ne sais pas si cela s'applique également à WebStorages

79
Rouby

Objet sessionStorage: .__ L'objet sessionStorage stocke les données uniquement pour une session, ce qui signifie que les données sont stockées jusqu'à la fermeture du navigateur (ou de l'onglet). il n'est pas disponible lorsqu'un fichier est exécuté localement.

Les données stockées dans l'objet sessionStorage sont accessibles uniquement à partir de la page qui stockait initialement les données. donc cela ne répond pas à vos besoins

Objet localStorage: .__ Les données stockées à l'aide de l'objet localStorage sont conservées jusqu'à ce qu'elles soient spécifiquement supprimées via JavaScript ou que l'utilisateur efface le cache du navigateur.

Les données stockées dans l'objet localStorage sont accessibles uniquement à partir du domaine qui les stockait initialement.

Pour votre cas, je pense que vous pensez à utiliser un cookie ou une session, les pls. remarque Le cookie a une taille limite de 4K par serveur.

16
Jackie Dong

En plus d’autres réponses, WebStorages ne peut pas accéder au sous-domaine ni au domaine parent.

4
Ali

stockage local: 1. Limite de données: 5 Mo 2. Données envoyées pour chaque requête http: non

sessionStorage: 1. Limite de données: 5 Mo 2. Données envoyées pour chaque demande http: no 3. Les données seront effacées une fois la fenêtre ou l'onglet fermé

Je dirais, utilisez localstorage/sessionStorage si les données sont non sensibles, sinon utilisez des cookies 

0
Prashant Biradar

LocalStorage - Stocke les données sans date d'expiration et est effacé uniquement via JavaScript ou en effaçant le cache du navigateur/les données stockées localement. La limite de stockage est le maximum parmi les trois

SessionStorage - L'objet sessionStorage stocke les données uniquement pour une session, ce qui signifie que les données sont stockées jusqu'à la fermeture du navigateur (ou de l'onglet). Les données ne sont jamais transférées sur le serveur. La limite de stockage est supérieure à un cookie (au moins 5 Mo).

Cookie - Stocke les données qui doivent être renvoyées au serveur avec les demandes suivantes. Son expiration varie en fonction du type et la durée d'expiration peut être définie du côté serveur ou du côté client (normalement du côté serveur). Les cookies sont principalement destinés à la lecture côté serveur (pouvant également être lus côté client), localStorage et sessionStorage ne peuvent être lus que côté client. La taille doit être inférieure à 4 Ko. Les cookies peuvent être sécurisés en définissant l'indicateur httpOnly sur true pour ce cookie. Cela empêche l'accès côté client à ce cookie.

0
Anush