cookie与localStorage与sessionStorage
1. cookie
1_1: 简述
HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送(
由服务器设置后返回给浏览器端
)到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器——如保持用户的登录状态。Cookie 使基于无状态(即服务器不知道用户的两次请求分别做了什么,也不知道两次请求间是否存在关联,http请求协议就是无状态的)的 HTTP 协议记录稳定的状态信息成为了可能。
1_2: 应用方面
1_2_1: 如用户登录状态、购物车、游戏分数或其他需要记录的信息
1_2_2: 如用户自定义设置、主题和其他设置
1_2_3: 如跟踪分析用户行为等(例如用户登录购物网站进行一些页面操作会被记录下来,一些喜好等)
1_3: 缺点
1_3_1: 大小只有4kb,一些大数据量情况下并不能满足数据传输的需求
1_3_2: 每次新请求都会携带cookie,造成资源的浪费
1_4: 安全限制
1_4_1 Secure 添加该属性则cookie只能通过https传输,而不能通过http传输
1_4_2 HttpOnly 使客户端不能够通过js代码读取与设置cookie
2.localStorage
2_1 简述
localStorage 中的键值对总是以字符串的形式存储。 (需要注意,和 js 对象相比,键值对总是以字符串的形式存储意味着数值类型会自动转化为字符串类型).
2_2 数据存储期限
长期有效,在非手动清除或者代码清楚数据的情况下,永久有效,不同标签页之间数据共享,可以做到不同标签页进行数据共享
3_3 数据大小
一般在5M左右
3. sesstionStorage
3_1: 简述
sessionStorage属性允许你访问一个,对应当前源的 session对象。它与 localStorage相似,不同之处在于 localStorage里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。
3_2 数据存储期限
只在当前标签页会话有效,标签关闭后对应sessionStorage数据会清除,如果标签页是复制打开,会继承复制的标签页的数据,不同标签页之间数据不共享
3_3 一般在5M左右