cookie session 和localStorage 都是用于在Web应用程序中的数据存储的机制。
JavaScript提供了三种在客户端存储数据的机制:cookie、sessionStorage(会话存储)和localStorage(本地存储)。都是浏览器的本地存储,每一种都有优点和缺点
什么是Cookie?
Cookie是一种存储在用户计算机的小型文本文件,由服务器发送到浏览器(客户端),然后每次向该服务器发送请求时都会携带回去。它通常用于在浏览器和服务器之间存储有限的数据。
特点:
- 优点:Cookie通常有过期的时间,跨不同的会话(浏览器)保持状态。
- 缺点:它们是有限制的,每个域名下的浏览器对Cookies数量和大小有一定的限制。
用途: 常见用途就是用户身份验证、跟踪会话状态、购物车保存
什么是Session?
Session通常指的是服务端技术,用于跟踪和管理与特定用户或客户端的交互状态。会话的主要目的是在用户访问网站时保持用户的状态和数据,Session(会话)数据通常存储在服务器端,以确保安全性和数据的持久性。
特点:
1.优点:安全性强。
2.缺点:seesion会在一段时间内保存在服务器上。当访问增多时,服务器性能方面可以使用cookie
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
什么是localStorage ?
是一种webStorage,允许JS直接在浏览器中访问和存储数据。
1.访问当前域名下的本地Storage对象,创建一个新数据对象
localStorage.setItem('key', 'value');
2.读取
localStorage.getItem('key');
3.删除
localStorage.removeItem('key');
什么是sessionStorage?
是一种webStorage,允许你访问一个,对应当前源的session storage对象。不同之处在于localStorage里面存储的数据没有过期的时间限制,而sessionStorage里面的数据会在会话结束时清除。
// 保存数据到 sessionStorage
sessionStorage.setItem("key", "value");
// 从 sessionStorage 获取数据
let data = sessionStorage.getItem("key");
// 从 sessionStorage 删除保存的数据
sessionStorage.removeItem("key");
// 从 sessionStorage 删除所有保存的数据
sessionStorage.clear();
Local Storage, Session Storage, and Cookies的区别
Local Storage | Session Storage | Cookie |
---|---|---|
存储10MB的数据 | 存储10MB的数据 | 限制为 4KB 数据。 |
关闭浏览器时,存储的数据不会被删除。 | 数据仅在会话期间存储,并且在浏览器关闭时将被删除。 | 数据可以设置为在某个时间过期。 |
localStorage对于存储用户稍后要访问的数据非常有用,相当于离线数据 | sessionStorage是提高web应用程序性能的好方法 | cookie是存储不应该长期保留的数据的不错选择 |
这对于存储即将用户关闭浏览器也要保留的数据特别有用 | sessionStorage是对存储敏感数据非常有用(登录凭证) | Cookie通常适用于不敏感的数据,例如用户的偏好 |
localStorage是html5新引入的功能 | sessionStorage是html5新引入的功能 | cookie是最古老最著名的机制 |
数据不发送到服务器 | 数据不发送到服务器 | 数据随客户端的请求发送到服务器 |
数据存储在浏览器和系统上 | 数据仅存储在浏览器上 | 数据仅存储在浏览器上 |