Cookie、webStorage

Cookie:

语法:document.cookie =  "key1=value1;key2=value"

Cookie可以把数据以键值对的方式把数据保存在电脑上的文本文件中。
expires参数可以设置cookie的有效时间,如果不设置则默认为浏览器关闭时删除记录。

自动动手写两个函数对cookie进行读写数据

function setCookie(key, name, validDay) {//第三个参数为cookie的有效时间  
    var d = new Date();  
    d.setTime(d.getTime() + validDay * 24 * 60 * 60 * 100);  
    var expires = 'expires=' + d.toGMTString();  
    document.cookie = key + "=" + name + ";" + expires;
}

function getCookie(key) {  
    var list = document.cookie.split(';');//以分号截断cookie中保存的字符串  
    for (var i = 0; i < list.length; i++) {    
        var value = list[i].trim();//去除两边的空格    
        if (value.valueOf(key) === 0) {      
            return value.substring(key.length + 1, value.length);    
        }  
    }
}
复制代码

WebStorage

localStorage&&sessionStorage:

localStorage和sessionStorage的用法完全一模一样,而不同的只有是保存的时间长短不一样:

  • localStorage是除非主动删除,否则数据会永久存在;而sessionStorage的话是只在本次会话中有效,也就是说页面关闭后也就没有了。

要使用webStorage首先要判断浏览器是否支持

//localStorage
if(window.localStorage){
    return ture;
}else{
    return false;
}

//sessionStorage
if(window.sessionStorage){
    return true;
}else{
    return false;
}

操作webStorage的方法:
setValue:setItem(key, value)
getValue:getItem(key)
removeData:removeItem(key)
getKey:key(index)
clearAll:clear()复制代码

Cookie和WebStorage的异同

       显而易见的,webStorage提供了基本的操作方法,而cookie则需要开发者自己封装setCookie、getCookie。

       webStorage和cookie都可以作为本地持久化存储使用,区别是他们的容量设计不一样,每个cookie最大不能超过4096字节,这就决定了cookie为大容量的本地存储工作。

       cookie会在每次请求一个新页面的时候cookie都会被发送过去,这样会浪费带宽;cookie还需要指定作用域,不可以跨域调用。但是cookie是不可或缺的,cookie的作用是与如无其进行交互,作为http规范的一部分而存在,而webStorage的出现仅仅是为了解决cookie的小容量这一局限性而设计,真正的为了本地"存储"数据而生。

Cookie的利弊优缺点

先抑···

cookie虽然在持久保存客户端数据提供了方便,分担了服务器的负担,但还是有很多局限性的

  • 每个特定域名下最多生成20个cookie
    1、IE6或更低版本最多20个cookie
    2、IE7和之后的版本最后可以有50个cookie
    3、firefox最多50个cookie
    4、chrome和safari没有做硬性限制
          IE和Opera会清理近期最少使用的cookie,firefox会随机清理cookie
  • cookie最大能保存4096字节,为了兼容性,一般不超过4095字节,超出的长度会被截掉。
  • 安全性问题。如果cookie被拦截了,session中的所有信息都将会被盗取。只要把cookie原样转发就可以获取所有信息,加密了也没有用,因为cookie的意义不需要知道。

后扬···

极高的拓展性和可用性

  • 通过良好的编程,控制保存在cookie中的session对象的大小
  • 通过加密和安全传输技术(SSL),减少cookie被破解的可能性
  • 只在cookie存放不敏感数据,即使被盗也不会有重大损失
  • 灵活控制cookie的生命期,使之不会永远有效。道曲折很可能拿到的是一个国企的cookie


转载于:https://juejin.im/post/5a377e3851882524c742beb0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值