Cookie是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。因此它具备必定得信息存储功能,可是并非什么都存放在cookie中。html
Cookies最典型的应用是断定注册用户是否已经登陆网站,用户可能会获得提示,是否在下一次进入此网站时保留用户信息以便简化登陆手续,这些都是Cookies的功用。
固然这些信息也并非一直存放与你的浏览器中,Cookie有一个存放周期,能够经过代码本身决定存放周期,通常来讲,咱们都是在退出登录的时候删除Cookie为了确保用户信息的安全。前端
因为Cookie没有提供专门的API接口,因此须要咱们本身来实现对于Cookie的操做:web
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数:chrome
Microsoft指出InternetExplorer8增长cookie限制为每一个域名50个,但IE7彷佛也容许每一个域名50个cookie。 Firefox每一个域名cookie限制为50个。 Opera每一个域名cookie限制为30个。 Safari/WebKit貌似没有cookie限制。可是若是cookie不少,则会使header大小超过服务器的处理的限制,会致使错误发生。 注:“每一个域名cookie限制为20个”将再也不正确!
二、当不少的cookie被设置,浏览器如何去响应。跨域
除Safari(能够设置所有cookie,无论数量多少),有两个方法: 最少最近使用(leastrecentlyused(LRU))的方法:当Cookie已达到限额,自动踢除最老的Cookie,以使给最新的Cookie一些空间。Internet Explorer和Opera使用此方法。 Firefox很独特:虽然最后的设置的Cookie始终保留,但彷佛随机决定哪些cookie被保留。彷佛没有任何计划(建议:在Firefox中不要超过Cookie限制)。
三、不一样浏览器间cookie总大小也不一样:浏览器
Firefox和Safari容许cookie多达4097个字节,包括名(name)、值(value)和等号。 Opera容许cookie多达4096个字节,包括:名(name)、值(value)和等号。 Internet Explorer容许cookie多达4095个字节,包括:名(name)、值(value)和等号。 注:多字节字符计算为两个字节。在全部浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。
来源:https://www.cnblogs.com/henry...安全
它包含了两种机制:ruby
请注意这里是sessionStorage而不是session,这二者有着千差万别。服务器
存储一些须要页面共享的信息,而且不须要向后台发送的信息。cookie
localStorage.setItem('name', 'Tom'); //在localStorage中写入键名为name,值为Tom的信息 let cat = localStorage.getItem("name"); //获取localStorage中键名为name的值。 localStorage.removeItem("name"); //移除name。 sessionStorage.setItem('key', 'value'); // 保存数据到sessionStorage let data = sessionStorage.getItem('key'); // 从sessionStorage获取数据 sessionStorage.removeItem('key'); // 从sessionStorage删除保存的数据 sessionStorage.clear(); // 从sessionStorage删除全部保存的数据
IE 9 > 4999995 + 5 = 5000000 firefox 22.0 > 5242875 + 5 = 5242880 chrome 28.0 > 2621435 + 5 = 2621440 safari 5.1 > 2621435 + 5 = 2621440 opera 12.15 > 5M (超出则会弹出容许请求更多空间的对话框)
来源:https://blog.csdn.net/cengjin...
1、Cookie、SessionStorage、LocalStorage的区别
一、Web Storage的概念和cookie类似,区别是它是为了更大容量存储设计的,cookie的大小是受限的,而且每次请求一个新的页面的时候cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还须要指定做用域,不可跨域调用。
二、web storage拥有setItem,getItem,removeItem,clear等方法,不像cookie须要前端开发者本身封装setCookie,getCookie。
三、cookie的做用是与服务器进行交互,做为http规范的一部分而存在的,而web Storage仅仅是为了在本地“存储”数据而生
四、sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念,sessionStorage是在同源的同学口中,始终存在的数据,也就是说只要这个浏览器窗口没有关闭,即便刷新页面或进入同源另外一个页面,数据仍然存在,关闭窗口后,sessionStorage就会被销毁,同时“独立”打开的不一样窗口,即便是同一页面,sessionStorage对象也是不一样的。
来源:https://blog.csdn.net/ruby_xc...