cookie与session


1、cookie


将用户的信息通过cookie保存到本地浏览器

cookie与session

 

2、session


将用户敏感的信息通过session保存到服务器端,服务器通过MD5加密算法生成一个sessionID,保存到cookie中

cookie与session

 

3、二者的区别对比


Cookie机制是通过检查客户身上的"通行证"来确定客户身份的话, 那么Session机制就是通过检查服务器上的"客户明细表"来确认客户身份。 Session相当于程序在服务器上建立的一份客户档案, 客户来访的时候只需要查询客户档案表就可以了

3.1、存储位置


cookie存储在客户端
session存储在服务端


3.2、存储容量


cookie每个不超过4KB,一个站点最多20个
session没有上限,但为了服务器找想,会有session删除机制


3.3、存储方式


cookie只能保存ASCII字符串,并通过编码方式存储为unicode字符或者二进制
session可以存放任意类型的数据


3.4、隐私策略


cookie对客户端可见,不安全
session对客户端透明,不会有敏感信息泄漏的风险


3.5、有效期


cookie 可通过设置参数达到长期有效
session不会长期有效


3.6、适用场景


cookie保存在客户端,不占用服务端,对于并发用户多的网站很友好
session保存在服务端,如果用户过多,会消耗掉大量内存


3.7、跨域访问


cookie支持跨域访问
session不支持跨域访问

4、问答

4.1、问:session产生的session_id放在cookie里面,如果用户把cookie禁止掉,是不是session也不能用了呢?


禁止掉cookie后,session当然可以用,不过通过其他的方式来获得这个sessionid,比如,可以跟在url的后面,或者以表单的形势提交到服务器端。从而使服务器端了解客户端的状态。


4.2、问:为什么说session 比cookie更安全?


真正的cookie存在于客户端硬盘上的一个文本文件,如果两者一样的话,只要cookie就好了,让客户端来分提服务器的负担,并且对于用户来说又是透明的。但实际上不是。
session的sessionID是放在cookie里,要想功破session的话,得分两步:
第一要得到sessionID。攻破cookie后,你要得到sessionID,sessionID是要有人登录,或者启动session_start才会有,你不知道什么时候会有人登录。
第二取有效sessionID。sessionID是加密的,第二次session_start的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了。
————————————————
版权声明:本文为****博主「灵谷鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/weixin_42125310/article/details/106638077