Cookie、session和localStorage、以及sessionStorage之间的区别

1、Cookie、session和localStorage的区别

cookie的内容主要包括:名字、值、过时时间、路径和域。路径与域一块儿构成cookie的做用范围。若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失。这种生命期为浏览器会话期的cookie被称为会话cookie。
会话cookie通常不存储在硬盘而是保存在内存里,固然这个行为并非规范规定的。若设置了过时时间,浏览器就会把cookie保存到硬盘上,关闭后再打开浏览器这些cookie仍然有效直到超过设定的过时时间。对于保存在内存里的cookie,不一样的浏览器有不一样的处理方式session机制。
当程序须要为某个客户端的请求建立一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),若是已包含则说明之前已经为此客户端建立过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),若是客户端请求不包含session id,则为客户端建立一个session而且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。保存这个session id的方式能够采用cookie,这样在交互过程当中浏览器能够自动的按照规则把这个标识发送给服务器。前端

2、cookie和session的区别:

一、cookie数据存放在客户的浏览器上,session数据放在服务器上
二、cookie不是很安全,别人能够分析存放在本地的cookie并进行cookie欺骗,考虑
到安全应当使用session
三、session会在必定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie
四、单个cookie保存的数据不能超过4K,不少浏览器都限制一个站点最多保存20个cookie
五、建议将登陆信息等重要信息存放为session,其余信息若是须要保留,能够放在cookie中
六、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器可以知道其中的信息
七、session中保存的是对象,cookie中保存的是字符串
八、session不能区分路径,同一个用户在访问一个网站期间,全部的session在任何一个地方均可以访问到,而cookie中若是设置了路径参数,那么同一个网站中不一样路径下的cookie互相是访问不到的
web

3、web Storage和Cookie的区别

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

Web Storage带来的好处:
一、减小网络流量:一旦数据保存在本地以后,就能够避免再向服务器请求数据,所以减小没必要要的数据请求,减小数api

据在浏览器和服务器间没必要要的来回传递
二、快速显示数据:性能好,从本地读数据比经过网络从服务器上得到数据快得多,本地数据能够及时得到,再加上网跨域

页自己也能够有缓存,所以整个页面和数据都在本地的话,能够当即显示
三、临时存储:不少时候数据只须要在用户浏览一组页面期间使用,关闭窗口后数据就能够丢弃了,这种状况使用sessionStorage很是方便浏览器

4、浏览器本地存储与服务器端存储的区别

其实数据既能够在浏览器本地存储,也能够在服务器端存储
浏览器能够保存一些数据,须要的时候直接从本地存取,sessionStorage、localStorage和cookie都是由浏览器存储在本地的数据
服务器端也能够保存全部用户的全部数据,但须要的时候浏览器要向服务器请求数据。
一、服务器端能够保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端
二、服务器端也能够保存用户的临时会话数据,服务器端的session机制,如jsp的session对象,数据保存在服务器上,缓存

实际上,服务器和浏览器之间仅需传递session id便可,服务器根据session id找到对应用户的session对象,会话数据仅在一段时间内有效,这个时间就是server端设置的session有效期安全

服务器端保存全部的用户的数据,因此服务器端的开销较大,而浏览器端保存则把不一样用户须要的数据分别保存在用户各自的浏览器中,浏览器端通常只用来存储小数据,而非服务能够存储大数据或小数据服务器存储数据安全一些,浏览器只适合存储通常数据服务器

5、sessionStorage、localStorage和cookie的区别

共同点:都是保存在浏览器端、且同源的
区别:
一、cookie数据始终在同源的http请求中携带(即便不须要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,能够限制cookie只属于某个路径下
二、存储大小限制也不一样,cookie数据不能超过4K,同时由于每次http请求都会携带cookie、因此cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,能够达到5M或更大
三、数据有效期不一样,sessionStorage:仅在当前浏览器窗口关闭以前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据;cookie:只在设置的cookie过时时间以前有效,即便窗口关闭或浏览器关闭
四、做用域不一样,sessionStorage不在不一样的浏览器窗口中共享,即便是同一个页面;localstorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的
五、web Storage支持事件通知机制,能够将数据更新的通知发送给监听者
六、web Storage的api接口使用更方便cookie

6、sessionStorage与页面js数据对象的区别

页面中通常的js对象的生存期仅在当前页面有效,所以刷新页面或转到另外一页面这样的从新加载页面的状况,数据就不存在了 而sessionStorage只要同源的同学口中,刷新页面或进入同源的不一样页面,数据始终存在,也就是说只要浏览器不关闭,数据仍然存在

相关文章
相关标签/搜索