Web Storage API
HTML5 Web Storage (localStorage and sessionStorage) lets you store key-value data in the browser without cookies. localStorage persists forever (until cleared); sessionStorage clears when the tab closes. Both store up to 5-10MB per origin — far more than cookies' 4KB limit.
30 min•By Priygop Team•Last updated: Feb 2026
localStorage vs sessionStorage vs Cookies
- localStorage — Persists forever across sessions. 5-10MB. Not sent to server. Same-origin only
- sessionStorage — Cleared when tab/window closes. 5-10MB. Isolated per tab. Good for temp data
- Cookies — Sent with every HTTP request. 4KB limit. Can set expiration. Used for authentication tokens
- All store strings only — use JSON.stringify() to store objects, JSON.parse() to retrieve
- Same-origin policy — storage is isolated per protocol + domain + port
- No encryption — never store sensitive data (passwords, tokens) in Web Storage
Web Storage Code
Example
// localStorage — persists forever
localStorage.setItem('username', 'Alice');
localStorage.setItem('theme', 'dark');
const user = localStorage.getItem('username'); // 'Alice'
localStorage.removeItem('username');
localStorage.clear(); // removes everything
// Storing objects (must serialize)
const settings = { theme: 'dark', fontSize: 16, language: 'en' };
localStorage.setItem('settings', JSON.stringify(settings));
const saved = JSON.parse(localStorage.getItem('settings'));
// sessionStorage — cleared on tab close
sessionStorage.setItem('cartTotal', '49.99');
// Listen for storage changes (cross-tab sync)
window.addEventListener('storage', (event) => {
console.log(`Key: ${event.key}`);
console.log(`Old: ${event.oldValue}`);
console.log(`New: ${event.newValue}`);
});Try It Yourself: Theme Switcher
Try It Yourself: Theme SwitcherHTML
HTML Editor
✓ ValidTab = 2 spaces
HTML|46 lines|1820 chars|✓ Valid syntax
UTF-8