三者可以用在浏览器储存数据,而数据都是字符串类型的键值对
Cookie:
是服务器发送到用户浏览器并保存在浏览器上的一块数据, 它会在浏览器下一次发起请求时被携带并发送到服务器上。可以它用来确定两次请求是否来自于同一个浏览器,从而能够确认和保持用户的登录状态。
localStorage:
会永久存储会话数据,除非手动删除,否则会话数据一直存在,将数据保存在客户端本地,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用。 本地储存
sessionStorage:
对象存储特定于某个会话的数据,也就是该数据只保持到浏览器关闭,当页面关闭后,sessionStorage 中的数据就会被清空。 会话级储存
cookie,localStorage, sessionStorage三者区别
cookie始终在同源的http请求中携带,即使不需要,cookie在浏览器和服务器中来回传递。而localStorage和sessionStora仅仅在本地存储,不会和服务器通信,也不会自动把数据发送给服务器。
存储大小不同,cookie为4kb左右;localStorage, sessionStorage可以达到5M
数据有效期不同,sessionStorage仅在同源窗口中有效,关闭窗口就消失了,cookie可以设置过期时间,localStorage长期有效
localStorage, sessionStorage有现成的API(setItem,getItem,removeItem,clear)
cookie需要程序员手动封装
localStorage, sessionStorage 用法
表格:
特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
数据周期 | 由服务器生成,可设置时间,在浏览器生成,默认关闭页面之后清除 | 除非手动删除,否则永久保存在本地 | 当前会话下数据存在,关闭网页或浏览器时被清除 |
数据大小 | 不会超过4KB | 5M | 5M |
服务器通信 | 每次通讯会在HTTP头中, | 不参与通讯 | 不参与通讯 |
用途 | 用来标识用户身份,保存登录信息 | 用于服务器缓存数据 | 用于服务器缓存数据 |
作用域不用
sessionStorage不在不同的浏览器窗口中共享
localStorage在所有同源窗口中都是共享的
cookie也是在所有同源窗口中都是共享的