数据存储cookie、sessionStorage、localStorage的区别

这三种方式都是用于客户端存储数据的方式。

  • cookie
    首先cookie是最先颁布的一种方式,是由网景公司创造的。它主要用于存储一些用户身份认证的信息,一般是加密后的信息。当客户端向服务器请求数据时,需要在HTTP头部加入cookie信息,这样服务器可以根据这个cookie判断需要给该客户端传送哪些特制的数据。
    cookie的组成:
name:一个唯一确定cookie的名称;
value:需要存储的值;
域:该cookie对于哪个域是有效的;
路径:该cookie在域中的哪个路径是有效的;
失效时间:cookie在哪个时间节点可以被删除;
安全标志:指定安全标识后,cookie只能在有SSL连接的时候可以发送到服务器。
  • sessionStorage和localStorage
    sessionStorage和localStorage是HTML5的一部分。他们只把需要存储的信息保存在客户端,而不需向服务器发送。并且他们可以存储大量的数据,一般限制为5MB。
    sessionStorage和localStorage的设置方法是一样的。都是在响应的对象上以属性和方法的方式进行设定。都有setItem方法和getItem方法进行相应的属性的设定以及获取属性值。

区别:

  • 存储的数据量不同:
    cookie的数据量设定一般为4KB;
    localStorage和sessionStorage可以存储5MB的数据。
  • 有效时间不同:
    cookie的有效时间根据设定的失效时间确定;
    sessionStorage的有效时间直到会话结束即浏览器关闭;
    localStorage存储的数据会一直保存在浏览器中,除非主动删除数据。
  • 是否会传送给服务器:
    浏览器会在http请求中加入cookie发送给相应的服务器,该服务器需要是同源的,即域名和cookie的设定是一致的。
    sessionStorage和localStorage只保存在浏览器中,不会传送给服务器。

推荐阅读更多精彩内容