Cookie和Session

本文深入讲解了Cookie和Session的工作原理及区别,包括它们如何维护用户的会话状态、安全性对比及失效机制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Cookie和Session的原理以及区别

(1)Session是会话,是保存在服务器端用于保持用户身份。主要用于解决登录的敏感资源访问的相关问题。
(2)Session原理:当客户端向服务器发起请求时,服务器会先检查一下客户端请求头里是否有session_id,是否过期。如果客户端的请求头中包含session_id,那么服务器就会根据cookie对应的session_id检索出Session;如果没有session_id,那么服务器就会创建一个。如果在此期间,用户刷新页面或者重启服务器,生成的session_id也是不同的。
(3)Cookie是用来实现储存Session的一种方式,保存在客户端。使用场景通常是xxx天免登录
(4)Cookie原理:Cookie是由服务器生成,保存在客户端。用户第一次发起请求后,由服务器生成cookie,并将Set-Cookie字段封装到响应头中发送给客户端。当客户端再次发起请求,在请求中就会携带保存在客户端的cookie数据,发送到服务器。

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

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

  1. 为什么说session 比cookie更安全?

cookie是存放在客户端硬盘上的一个文本文件。而session的sessionID放在cookie中,要想功破session的话,得分两步:
(1)攻破cookie,要得到sessionID,sessionID是要有人登录,或者启动会话才会有,咱不知道什么时候会有人登录。
(2)sessionID是加密的,第二次启动会话的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了。
使session失效的方法:
1.关闭tomcat 2.重启web应用 3.session时间到 4.无效的session

  1. cookie和session的区别:

(1)cookie保存在客户端,session保存在服务器
(2)cookie是以明文的方式存放在客户端的,安全性低,可以通过一个加密算法进行加密后存放; session存放于服务器的内存中,所以安全性好
(3)cookie为多个用户浏览器共享; session为一个用户浏览器独享
(4)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束;session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁。但是,如果在20分钟内(如在第19分钟时)访问过session,那么,将重新计算session的生命周期。关机会造成session生命周期的结束,但是对cookie没有影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值