Cookie、localStorage、sessionStorage三者的区别

共同点

都是客户端存储方案

不同点:

  • Cookie在浏览器和服务器之间传输,附加于HTTP报文中;localStorage、sessionStorage只是活动于浏览器端,不需要和服务器通信
  • Cookie有path字段,可以规范Cookie的存储路径;localStorage、sessionStorage没有
  • 存储大小方面,Cookie只有4KB;,这是由于它是存在于HTTP报文中,数据量自然不能过大;localStorage、sessionStorage能够存储5MB以上
  • 数据的生命周期方面,Cookie如果是存在于内存中,则在关闭浏览器后便被释放,如果存在于硬盘中,有个过期时间或可手动清除;localStorage如果不手动清除,将会一直存在;sessionStorage在当前浏览器关闭之前有效
  • 作用域方面,Cookie、localStorage只要是同源窗口就能生效(即使是不同浏览器)sessionStorage在不同的浏览器是不同的(即使是同个网站)
  • localStorage、sessionStorage API提供了可监听的事件,可以在数据变动是执行相应动作
  • 应用场景方面:Cookie现在一般用于用户登录信息存储;localStorage、sessionStorage一般用于购物车、存储较大的数据量;表单信息;网站访客统计等;localStorage可做一些数据持久化工作,减少数据库的访问量