本地缓存/cookie、sessionStorage、localStorage的区别

cookie、sessionStorage、localStorage的区别

1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。

2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie 只适合保存很小的数据。sessionStorage和localStorage虽然也有存储大小的限制,但比 cookie大得 多,可以达到5M或更大

3、数据有效期不同,sessionStorage仅仅在当前浏览器窗口关闭之前有效;localStorage始终有效,窗口或 者浏览器关闭之后也一直保存,因此作用持久数据;cookie,只在设置cookie过期时间之前有效,即使 窗口关闭或者浏览器关闭。

4、作用域不同:sessionStorage在不同的浏览器窗口中不共享,即使是同一个页面,localStorage在所有的同源窗

本地存储(数据存放到浏览器)

1.cookie :具有极高的扩展性和可用性

(1).可以控制保存在cookie中的session对象的大小。
(2).通过加密和安全传输技术,减少cookie被破解的可能性
(3).可以控制cookie的生命期,给cookie一个时效性 。

cookie的缺点:

(1).cookie的长度和数量的限制。最多只能有20条cookie,每个cookie长度不能超过4KB。否则会被截掉至4KB。
(2).安全性问题。如果cookie被人拦掉了,就可以获取到所有session信息

2.localStorage (永久存储)

用于持久化的本地存储,除非主动删除数据,否则数据是永远也不过期的。

localStorage.setItem('phone',13800000000);   // 把电话号码存放到浏览器,通过'phone'进行存取
locahStorage.getItem('phone');   // 从浏览器取出名字叫'phone'的数据
locahStorage.removeItem('phone'); // 删除  localStorage.clear(); 清除所有缓存

3.sessionStorage (临时存储,浏览器关闭就消失)

用于本地存储一个会话(session)中的数据,这个数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionstorage不是一种持久化的本地存储,仅仅是会话级别的存储。

你可能感兴趣的:(本地缓存/cookie、sessionStorage、localStorage的区别)