sessionStorage、localStorage和cookie,session的区别

sessionStorage、localStorage和cookie的区别

共同点:都是保存在浏览器端、且同源的

区别:

1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下

2、存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大

3、数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭

4、作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的

5、web Storage支持事件通知机制,可以将数据更新的通知发送给监听者

6、web Storage的api接口使用更方便

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

页面中一般的js对象的生存期仅在当前页面有效,因此刷新页面或转到另一页面这样的重新加载页面的情况,数据就不存在了

而sessionStorage只要同源的同窗口中,刷新页面或进入同源的不同页面,数据始终存在,也就是说只要浏览器不关闭,数据仍然存在

区分cookie与session

cookie的作用是在客户端保持状态,比如登录状态。它被存储在本地硬盘或内存里,并且在发送http请求的时候会被放进请求头中参与通信。每个cookie最大为4k,每个域名可以拥有的cookie数量在不同浏览器中是不同的,但都多于20个,早期的20个限制已经不存在了。

session的作用是在服务器端保持状态,它被存储在服务器上。session被创建的时候会生成一个sessionid,它被存储在cookie中用来访问session。由于关闭浏览器不会导致session被删,迫使服务器为session设置了失效时间

区分localStorage与sessionStorage

localStorage和sessionStorage都属于webStorage本地存储,不参与服务器通信。而且它们都属于window对象,最大存储都在5M左右。

区别在于localStorage是永久存储。而sessionStorage的存储时间是当前会话,关闭页面或浏览器就会被清除。localStorage可以用来长期保存登陆信息。而sessionStorage可以用来一次性保存登陆信息,而且不同浏览器不共享。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值