cookie、session和Storage
概念:
cookie:HTTP响应头的⼀部分,通过name=value的形式存储,主要⽤于保存登录信息。在设置的cookie过期时间之前⼀直有效,即使窗⼝或浏览器关闭。存放数据⼤⼩为4K左右。有个数限制(各浏览器不同),⼀般不能超过20个。
webstorage:本地存储,包括localStorage(本地存储)和sessionStorage(会话存储),⼆者都保存在客户端,不与服务器进⾏交互通信,存储数据⼤⼩⼀般都是:5MB。
localStorage:⽣命周期是永久,这意味着除⾮⽤户清除localStorage信息,否则这些信息将永远存在。应⽤场景:常⽤于长期登录或判断⽤户是否已登录。
sessionStorage:仅在当前会话下有效,关闭页⾯或浏览器后被清除。应⽤场景:敏感账号⼀次性登录。
不同浏览器⽆法共享localStorage或sessionStorage中的信息。相同浏览器的不同页⾯间可以共享相同的 localStorage(页⾯属于相同域名和端⼝),但是不同页⾯或标签页间⽆法共享sessionStorage的信息。这⾥需要注意的是,页⾯及标签页仅指顶级窗⼝,如果⼀个标签页包含多个iframe标签且他们属于同源页⾯,那么他们之间是可以共享sessionStorage的。
WebStorage与cookie区别:
存储⼤⼩:cookie为4KB,⽽WebStorage是5MB;
⽣命周期:cookie在设定时间内⼀直有效,localStorage⼀直有效,sessionStorage浏览器未关闭前有效;
服务器通信:cookie在HTTP头中,参与服务器通信,WebStorage不参与服务器通信;
安全性:cookie随着HTTP头发送到服务器端,可能会被拦截,安全性相对较低;webStorage相对cookie更⾼,但有伪造问题;
易⽤性:cookie需要⾃⾏封装接⼝,webStorage直接调⽤接⼝;
带宽消耗:只要涉及cookie的请求,cookie数据都会在服务器和浏览器间来回传送,消耗⽹络的带宽;webStorage直接获取存储在本地的数据,节省⽹络流量,0带宽;
⽹络流量:webStorage不会传送到服务器,存储在本地的数据可以直接获取,也不会像cookie⼀样每次请求都会传送到服务器,所以减少了客户端和服务器端的交互,节省了⽹络流量;
显⽰速度:有的数据存储在WebStorage上,再加上浏览器本⾝的缓存。获取数据时可以从本地获取会⽐从服务器端获取快得多,所以速度更快。
浏览器本地存储与服务器端存储的区别:
数据既可以在浏览器本地存储,也可以在服务器端存储;
浏览器可以保存⼀些数据,需要的时候直接从本地存取,sessionStorage、localStorage和cookie都是由浏览器存储在本地的数据;
服务器端也可以保存所有⽤户的所有数据,但需要的时候浏览器要向服务器请求数据;
服务器端可以保存⽤户的持久数据,如数据库和云存储将⽤户的⼤量数据保存在服务器端,服务器端也可以保存⽤户的临时会话数据,服务器端的session机制,如jsp的session对象,数据保存在服务器上;
服务器和浏览器之间仅需传递session id即可,服务器根据session id到对应⽤户的session对象,会话数据仅在⼀段时间内有效,这个时间就是server端设置的session有效期;
服务器端保存所有的⽤户的数据,开销较⼤,⽽浏览器端保存则把不同⽤户需要的数据分别保存在⽤户各⾃的浏览器中,浏览器端⼀般只⽤来存储⼩数据,⽽⾮服务可以存储⼤数据或⼩数据服务器存储数据安全⼀些,浏览器只适合存储⼀般数据。
cookie和session的区别:
cookie数据存放在客户的浏览器上,session数据放在服务器上;
cookie不是很安全,别⼈可以分析存放在本地的cookie并进⾏cookie欺骗,考虑到安全应当使⽤session;
session在⼀定时间内保存在服务器上,当访问增多,会⽐较占⽤服务器的性能,考虑到减轻服务器性能应当使⽤cookie;
单个cookie保存的数*据不能超过4K,很多浏览器都限制⼀个站点最多保存20个cookie;
建议将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中;
session保存在服务器,客户端不知道其中的信⼼;cookie保存在客户端,服务器能够知道其中的信息;
session中保存的是对象,cookie中保存的是字符串;
session不能区分路径,同⼀个⽤户在访问⼀个⽹站期间,所有的session在任何⼀个地⽅都可以访问到,⽽cookie中如果设置了路径参数,那么同⼀个⽹站中不同路径下的cookie互相是访问不到的。
>sessionstorage和localstorage
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论