Sobes.tech
Junior

Explique la différence entre cookies, sessionStorage et localStorage.

sobes.tech IA

Réponse de l'IA

Cookies, sessionStorage et localStorage sont des mécanismes de stockage web qui diffèrent par leur but, leur durée de vie et la quantité de données stockées.

  • Cookies : Petits fragments de données envoyés par le serveur web et stockés sur l'ordinateur de l'utilisateur par le navigateur web. Ils sont envoyés avec chaque requête suivante au même serveur. Utilisés pour l'authentification, le stockage des préférences de l'utilisateur, le suivi de l'état du panier.

    • Durée de vie : Définie lors de la création (peut être de session ou avec une date d'expiration spécifique).
    • Volume : Limité, généralement quelques kilo-octets (environ 4 Ko).
  • sessionStorage : Stocke les données uniquement pour une session du navigateur (onglet ou fenêtre ouverte). Les données sont supprimées à la fermeture de l'onglet ou de la fenêtre.

    • Durée de vie : Jusqu'à la fermeture de l'onglet ou de la fenêtre du navigateur.
    • Volume : Significativement plus grand que celui des cookies (généralement plusieurs mégaoctets).
  • localStorage : Stocke les données sans date d'expiration, jusqu'à ce qu'elles soient explicitement supprimées par l'utilisateur ou un script. Disponible dans tous les onglets et fenêtres du même domaine.

    • Durée de vie : Permanente (jusqu'à suppression explicite).
    • Volume : Significativement plus grand que celui des cookies (généralement plusieurs mégaoctets).

Voici une brève comparaison :

Mécanisme Durée de vie Disponibilité Envoyé au serveur Volume (typique) Objectif
Cookies De session ou avec expiration Via en-têtes HTTP Oui ~4 Ko Authentification, suivi, préférences
sessionStorage Jusqu'à la fermeture de l'onglet/fenêtre Via API JS Non ~5-10 Mo Stockage temporaire de données de session
localStorage Permanente (jusqu'à suppression) Via API JS Non ~5-10 Mo Stockage à long terme des données

Exemples d'utilisation de l'API JavaScript :

// Cookies (accès via document.cookie, nécessite parsing et sérialisation manuels)
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";

// sessionStorage
sessionStorage.setItem('id', '123');
let userId = sessionStorage.getItem('id');
sessionStorage.removeItem('id');

// localStorage
localStorage.setItem('theme', 'dark');
let userTheme = localStorage.getItem('theme');
localStorage.removeItem('theme');
localStorage.clear(); // Efface toutes les données dans localStorage