[JavaScript]简述session、cookie、localStorage、sessionStorage的区别

一、cookie与session

共同点:
cookie和session都是用来跟踪浏览器用户身份的会话方式

区别:
1)cookie存在浏览器端,session存在服务器端

1.cookie如不设置过期时间会随浏览器的关闭而销毁, cookie是服务器发给客户端的特殊信息,cookie是以文本的方式保存在客户端,每次请求时都带上它

2.session机制:当服务器收到请求需要创建session对象时,首先会检查客户端请求中是否包含sessionid。如果有sessionid,服务器将根据该id返回对应session对象。如果客户端请求中没有sessionid,服务器会创建新的session对象,并把sessionid在本次响应中返回给客户端。通常使用cookie方式存储sessionid到客户端,在交互中浏览器按照规则将sessionid发送给服务器。如果用户禁用cookie,则要使用URL重写,可以通过response.encodeURL(url) 进行实现;API对encodeURL的结束为,当浏览器支持Cookie时,url不做任何处理;当浏览器不支持Cookie的时候,将会重写URL将SessionID拼接到访问地址后。

2)存储内容:cookie只能保存字符串类型,以文本的方式;session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象)

3)单个cookie保存的数据不能超过4kb;session大小没有限制

二、webStorage:HTML5本地存储

提供一种在cookie之外存储会话数据的路径,提供一种存储大量可以跨会话存在的数据的机制。

webStorage与cookie的区别:

1)存储大小不同

	cookie不能超过4k

	localStorage、sessionStorage:5m或者更多

2)数据有效期

	cookie可以设置过期时间,若不设置则会随浏览器的关闭而销毁
	
	localStorage 一直保持,手动清除
	
	sessionStorage 关闭页面或者浏览器就清除了

3)作用域不同

	sessionStorage ==〉只能在当前页面有效

	localStorage、cookie : 不同页面也会存在

4)Web storage 支持事件通知机制、可以更新数据时发送给事件监听者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值