对本地存储的理解

1.本地存储包括cookie, sessionStorage,localStorage三种,

2.区别:

  sessionStorage和localStorage两个只是本地存储,不能与浏览器进行通信;

  cookie 的内存比较小,大概4kb,sessionStorage和localStorage大概5M;

  sessionStorage作用在单个页签之内,页签关闭sessionStorage消失,localStorage作用在浏览器之内,浏览器关闭localStorage也不会消失,除非手动清除,跨页签可以读取数据,cookie作用在自己设置的域下,举例:Set-Cookie: user=xxxx; Path=/; Domain=.example.com;

3.对三种的使用方法理解

  1)cookie的使用

   封装cookie.js文件,如下   

  var cookie = {
  setCookie: function (name, value, time) {
  //cookie有效期1天
  if (!time) {
  time=24/24;
  }
  var Days = time;
  var exp = new Date();
  exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() +";path=/; domain=.example.cn";
  },
  getCookie: function (name) {
  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg))
  return decodeURI(arr[2]);
  else
  return null;
  },
  clearCookie: function (name) {
  this.setCookie(name, "", -1);
  }
  }

  注意:cookie遵循“同源策略”,通过document.cookie不能读取到cookie信息;cookie存储在客户端,session存储在服务端,服务器端有个session列表,将cookie信息一一对应起来;服务器传送cookie时设置属性secure为true,表示创建的cookie只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是HTTP连接则不会传递该信息,所以很难被窃听到;服务器传送cookie时设置属性HttpOnly,HttpOnly告知浏览器不允许通过脚本document.cookie去更改这个cookie值,事实上,设置HttpOnly之后,这个值在document.cookie中不可见。但是在HTTP请求的过程中,依然会发送这个。(后两条我没有去验证)参考原文:https://blog.csdn.net/shuidinaozhongyan/article/details/78155444 

posted on 2018-11-19 15:36  刘二鹏  阅读(469)  评论(0编辑  收藏  举报