Le stockage web local ou stockage DOM (Document Object Model), ou encore localStorage, est une technique d'enregistrement de données dans un navigateur web. Le stockage web local permet l'enregistrement persistant, comme avec les cookies mais avec une capacité bien plus grande, et sans avoir à rajouter de données dans l'entête de requête HTTP.
Il existe deux types de stockage web local : le stockage local et le stockage de session, équivalant respectivement aux cookies persistants et aux cookies de session[1].
Contrairement aux cookies, les données en localStorage ne sont pas transmises automatiquement dans un en-tête à chaque requête HTTP réalisée vers le serveur. Elles sont conservées localement par le navigateur et sont accessibles avec une API JavaScript.
L'API JavaScript permet la sauvegarde de couples clé-valeur, les clés et valeurs étant obligatoirement des chaînes de caractères (string). Des objets peuvent être stockés après conversion en string avec par exemple JSON.stringify(object)
puis restaurés depuis une string avec JSON.parse(str)
.
Principales méthodes de l'API (localStorage implémente l'interface Storage) :
localStorage.setItem(key, value)
pour associer value à keylet a = localStorage.getItem(key)
pour récupérer la valeur associée à key (retourne null si la clé n'est pas présente)localStorage.removeItem(key)
pour supprimer une correspondancelocalStorage.clear()
pour effacer toutes les cléslocalStorage.length
renvoie le nombre de clés stockéeslocalStorage.key(i)
renvoie la clé d'indice n (n étant compris entre 0 et localStorage.length
- 1)Ces méthodes peuvent également être utilisées avec sessionStorage qui implémente également l'interface Storage ; contrairement à localStorage, sessionStorage réalise un stockage transitoire qui expire lorsque le navigateur est fermé.
La taille des cookies est limitée à 4 ko. Celle du localStorage dépend des navigateurs :
Navigateur | Taille du localStorage |
---|---|
Opera 10.50+ | 5 Mo[2] |
Safari 8 | 5 Mo[3] |
Firefox 34 | 10 Mo[3] (anciennement 5 Mo par origine en 2007[4]) |
Google Chrome | 10 Mo par origine[5] |
Internet Explorer | 10 Mo par aire de stockage[6] |