博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie、SessionStorage、LocalStorage应用及区别
阅读量:6337 次
发布时间:2019-06-22

本文共 3535 字,大约阅读时间需要 11 分钟。

一、什么是Cookie?

Cookie是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。所以它具有一定得信息存储功能,但是并不是什么都存放在cookie中。

二、Cookie的作用

Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。

当然这些信息也并不是一直存放与你的浏览器中,Cookie有一个存放周期,可以通过代码自己决定存放周期,一般来说,我们都是在退出登陆的时候删除Cookie为了确保用户信息的安全。

三、如何应用Cookie

由于Cookie没有提供专门的API接口,所以需要我们自己来实现对于Cookie的操作:

class CookieHandle{    setCookie(name,value,saveTime){        let exdate = new Date();        exdate.setDate(exdate.getDate()+saveTime)  //设置存储周期        document.cookie = name + "=" + escape(value) + ((saveTime == null) ? "" : ";expires="+exdate.toGMTString()) //设置cookie,并对信息进行一次加密    }    getCookie(name){        let cookie = document.cookie;        if(cookie.length>0){            cookie_start = cookie.indexOf(name + "=") //通过name找到我们需要cookie是否存在            if(cookie_start>-1){                cookie_start = cookie_start + name.length + 1;                cookie_end = cookie.indexOf(';',cookie_start)   //查询cookie结尾的位置                if(cookie_end == -1){                    cookie_end = cookie.length                }                return unescape(cookie.substring(cookie_start,cookie_end));  //返回找到的cookie的值并且解码            }        }    }    delCookie(name){        document.cookie = name + '=0;expires=' + new Date(0).toUTCString()    }}

四、各大浏览器对于Cookie的限制

1、浏览器允许每个域名所包含的cookie数:

  Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie。  Firefox每个域名cookie限制为50个。  Opera每个域名cookie限制为30个。  Safari/WebKit貌似没有cookie限制。但是如果cookie很多,则会使header大小超过服务器的处理的限制,会导致错误发生。  注:“每个域名cookie限制为20个”将不再正确!

2、当很多的cookie被设置,浏览器如何去响应。

  除Safari(可以设置全部cookie,不管数量多少),有两个方法:  最少最近使用(leastrecentlyused(LRU))的方法:当Cookie已达到限额,自动踢除最老的Cookie,以使给最新的Cookie一些空间。Internet Explorer和Opera使用此方法。  Firefox很独特:虽然最后的设置的Cookie始终保留,但似乎随机决定哪些cookie被保留。似乎没有任何计划(建议:在Firefox中不要超过Cookie限制)。

3、不同浏览器间cookie总大小也不同:

  Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。  Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。  Internet Explorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。      注:多字节字符计算为两个字节。在所有浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。

来源:


一、什么是Web Storage

它包含了两种机制:

  • sessionStorage 为每一个给定的源(givenorigin)维持一个独立的存储区域,该存储区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。
  • localStorage 同样的功能,但是在浏览器关闭,然后重新打开后数据仍然存在。

请注意这里是sessionStorage而不是session,这两者有着千差万别。

二、Web Storage的作用

存储一些需要页面共享的信息,并且不需要向后台发送的信息。

三、如何使用Web Storage

localStorage.setItem('name', 'Tom'); //在localStorage中写入键名为name,值为Tom的信息let cat = localStorage.getItem("name"); //获取localStorage中键名为name的值。localStorage.removeItem("name");  //移除name。sessionStorage.setItem('key', 'value'); // 保存数据到sessionStoragelet data = sessionStorage.getItem('key'); // 从sessionStorage获取数据sessionStorage.removeItem('key');  // 从sessionStorage删除保存的数据sessionStorage.clear();  // 从sessionStorage删除所有保存的数据

四、各大浏览器Web Storage的存储限制

IE 9          > 4999995 + 5 = 5000000firefox 22.0 > 5242875 + 5 = 5242880chrome  28.0  > 2621435 + 5 = 2621440safari  5.1   > 2621435 + 5 = 2621440opera   12.15 > 5M (超出则会弹出允许请求更多空间的对话框)

来源:


一、Cookie、SessionStorage、LocalStorage的区别

1、Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的,cookie的大小是受限的,并且每次请求一个新的页面的时候cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可跨域调用。
2、web storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。
3、cookie的作用是与服务器进行交互,作为http规范的一部分而存在的,而web Storage仅仅是为了在本地“存储”数据而生
4、sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念,sessionStorage是在同源的同窗口中,始终存在的数据,也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一个页面,数据仍然存在,关闭窗口后,sessionStorage就会被销毁,同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的。
来源:

转载地址:http://doaoa.baihongyu.com/

你可能感兴趣的文章
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>
用于测试的字符串
查看>>
财付通和支付宝资料收集
查看>>
PHPCMS V9数据库表结构分析
查看>>
理解 IEnumerable 与 IEnumerator
查看>>
NHibernate 2.0 Beta 1 Released和一些工具
查看>>
【每天一个Linux命令】12. Linux中which命令的用法
查看>>
软件接口数据一致性机制
查看>>
微服务架构介绍和RPC框架对比
查看>>
Debian下使用OpenLDAP 管理端
查看>>
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>
互联网生态建设落地五大挑战——保险科技生态建设 ...
查看>>
进行短视频app开发工作时,可以加入它来保护青少年 ...
查看>>