• cookie、locakstorage、sessionstorage的区别


     

    cookie

    localstorage

    sessionstorage

    数据的生命周期

    可以设置失效时间,一般默认为浏览器关闭后

    若不被清除,则永久保存

    存在于一次会话中,刷新页面数据仍然存在,但关闭页面或浏览器失效

    存储数据的大小

    大约4k

    大约5MB 大约5MB

    与服务端通信

    每次都会携带在http头中,使用cookie保存过多数据会带来性能问题

    客户端存储,不参与服务端通信

    客户端存储,不参与服务端通信

    易用性

    原生的cookie接口不友好,需要程序员自己封装

    可以使用原生接口,也可以自己封装,对objectarray有更好的支持

    可以使用原生接口,也可以自己封装,对objectarray有更好的支持

    应用场景

    用户登录:对于登录过的用户,再次登录时想cookie中插入一段加密过的唯一识别该用户的辨识码,下次只要读取这个值就可以判断该用户是否登录。

    曾经用于电商网站用户购物车信息,现在一般用localstorage

    HTML5游戏需要本地存储,可以用localstorage

    当有比较多的表单信息,为了更好地用户体验,需要分为若干子页面给用户填写,这时用sessionstorage

    cookie:

    1、不同浏览器存储cookie的位置不同(浏览器差异)

    2、按域名存储,不同域名的网站cookie存储的位置不同

    3、按名值对存储

    documen.cookie 可读可写的属性

    设置cookie过期时间,5天之后过期

    var date=new Date();
    date.setDate(date.getDate()+5);
    date.toGMTString(); document.cookie
    ='username=lily;expires='+date; //过期日期date必须是字符串格式时间类型的数据

     编码与解码:encodeURI(字符),decodeURI(字符)

    document.cookie返回的各名值对以‘; ’隔开,以下函数根据cookie名获取对应值

    function getCookie(key){
    var arr1=document.cookie.split('; ');
    for(var i=0;i<arr1.length;i++){
        var arr2=arr1[i].split('=');
        if(arr2[0]==key)
        return arr2[1];
    }

    设置cookie

    function ssetCookie(key,value,t){//t为过期时间
    var date=new Date();
    date.setDate(date.getDate()+t);
    document.cookie=key+'='+value=';expires='+date.toGMTString();
    }

    安全性:不要用他们存储敏感数据

    XSS:跨站脚本攻击 (crossing site scripting)

  • 相关阅读:
    注解
    使用反射机制调用属性和私有成员与代理模式的介绍
    动态代理模式
    SVN的安装与常用功能使用以及解决安装配置过程中的一些错误
    企业私服
    -Java-log4j
    List,Set,Map用法以及区别
    接口和抽象类有什么区别
    Dalvik opcodes
    外派公司或者外包公司,真的适合选择吗?
  • 原文地址:https://www.cnblogs.com/dll-ft/p/5510206.html
Copyright © 2020-2023  润新知