1. cookie
    1)HTTP Cookie简称cookie,在HTTP请求发送Set-Cookie HTTP头作为响应的一部分。通过name=value的形式存储
    2)cookie的构成:
    名称:name(不区分大小写,但最好认为它是区分的)
    值:value(通过URL编码:encodeURIComponent)

    路径
    失效时间:一般默认是浏览器关闭失效,可以自己设置失效时间
    安全标志:设置安全标志后只有SSL连接的时候才发送到服务器
    3)cookie的作用:主要用于保存登录信息
    4)生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
    5)cookie的优点:具有极高的扩展性和可用性
    通过良好的编程,控制保存在cookie中的session对象的大小
    通过加密和安全传输技术,减少cookie被破解的可能性
    只有在cookie中存放不敏感的数据,即使被盗取也不会有很大的损失
    控制cookie的生命期,使之不会永远有效。这样的话偷盗者很可能拿到的就 是一个过期的cookie
    6)cookie的缺点:
    cookie的长度和数量的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉
    安全性问题。如果cookie被人拦掉了,那个人就可以获取到所有session信息。加密的话也不起什么作用
    有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务端保存一个计数器。若吧计数器保存在客户端,则起不到什么作用
  2. sessionStorage
    1)sessionStorage是Storage类型的一个对象,拥有clear(),getItem(name),key(index),removeItem(name),setItem(name,value)方法
    2)sessionStorage对象存储特定于某个会话的数据,也就是该数据只保持到浏览器关闭
    3)将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据
    4)sessionStorage为临时保存
  3. localStorage
    1)localStorage也是Storage类型的一个对象
    2)在HTML5中localStorage作为持久保存在客户端数据的方案取代了globalStorage(globalStorage必须指定域名)
    3)localStorage会永久存储会话数据,除非removeItem,否则会话数据一直存在
    4)将数据保存在客户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可以继续使用
    5)localStorage为永久保存
  1. 本地储存localStorage与cookie的区别
    1)cookie在浏览器与服务器之间来回传递
    sessionStorage和localStorage不会把数据发给服务器,仅在本地保存
    2)数据有效期不同
    cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
    sessionStorage:仅在当前浏览器窗口关闭前有效
    localStorage 始终有效,长期保存
    3)cookie数据还有路径的概念,可以限制cookie只属于某个路径下
    存储大小也不同,cookie数据不能超过4k,sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
    4)作用域不用
    sessionStorage不在不同的浏览器窗口中共享
    localStorage在所有同源窗口中都是共享的
    cookie也是在所有同源窗口中都是共享的
    WebStorage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便

1)相同点是都是保存在浏览器端、且同源的

2)cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下

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

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

5)作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的

6)web Storage支持事件通知机制,可以将数据更新的通知发送给监听者

7)web Storage的api接口使用更方便