Session和Cookie的异同

在web应用中通常使用Cookie和Session技术来保存会话数据;Cookie数据保存在客户端所以不安全,Session数据保存在服务端所以安全。

Cookie是客户端技术,程序把每个用户的数据以键值对的形式写给用户各自的浏览器,当用户使用浏览器再去访问服务器中的web资源时,就会携带着数据去访问;
1、一个Cookie只能标识一种信息,它至少含有一个标识该信息的名称NAME和设置值的VALUE;
2、一个web站点可以给一个web浏览器发送多个Cookie,一个web浏览器也可以存储多个web站点的Cookie(多对一);
3、浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB;
4、如果创建了一个Cookie并将它发送到浏览器,默认情况下它是一个会话级别的Cookie,用户退出浏览器之后被删除,若希望浏览器将Cookie存到磁盘上,则需要使用maxAge,单位为秒,将最大时效设为0则是命令浏览器删除该Cookie。

Session是服务端技术,数据保存在服务器上,一个Session就是一次会话,在一次会话中,多个连接共享一个Session对象;
原理:web服务器在每次请求时,都会根据Cookie中的JSESSIONID来获取一个Session对象,如果获取到则说明已经存在Session对象,如果获取不到,说明不存在Session对象,则会创建Session对象,服务器创建Session对象后,会把Session的ID号以Cookie的形式回写给客户端,这样只要客户端的浏览器不关闭,再去访问服务器时都会带着Session的ID去,服务器发现客户端浏览器带着SessionID过来,就会使用内存中与之对应的Session为之服务;
Session的默认有效期是30分钟,可在web.xml中修改配置,以分为单位。用户信息超过xx提示重新登录,就是运用了Session技术,Session是基于Cookie的技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值