Cookie、Session介绍

文章介绍了HTTP的无状态特性以及如何通过Cookie和Session来管理用户登录状态。Cookie用于存储SessionID和过期时间,而Session在服务器端存储用户信息,通过SessionID在服务器和浏览器间维持会话。Session在会话过期、服务器关闭或退出登录时会被清除。
摘要由CSDN通过智能技术生成

1.背景

HTTP是无状态的。用户登陆网页访问服务器,登陆成功后关闭网页,再次打开网页访问服务器,此时仍然需要登录。
简单的做法是可以让浏览器记住用户名和密码登陆时进行自动填充,不过有风险比如电脑被黑(不过像我这种人畜无害的,黑客估计也盯不上我),但是这样退出网页后还是得登陆。
因此关键的还是要处理HTTP无状态的问题。即浏览器要在登陆成功后发起的每次HTTP请求携带用户登陆状态。这里用到的技术就是Cookie。


2.Cookie

但如图将用户名密码都保存在浏览器Cookie里是有风险的(同上),因此引入Session。
在这里插入图片描述


3.Session(会话)

浏览器与服务器交互就是一个Session,Session有着唯一标识Session ID和过期时间。用户登陆成功后服务器会生成一个Session,并将用户信息存储到Attribute(就是一个map结构,可查看源码),然后服务器返回响应携带Set-Cookie让前端设置Session ID和过期时间等字段。前端之后发送请求都会携带Cookie,后端根据请求中的Session ID获取Session,若获取失败直接返回;若获取成功则从Session中的Attribute获取用户信息,若结果为空则直接返回;若不为空表明验证通过,服务器会继续执行处理请求逻辑。
在这里插入图片描述


总结:Cookie一般保存在浏览器,存储着Session ID和Session过期时间等,随着过期时间清除;Session一般保存在服务器内存,随着服务器关闭/重启会清除,或者随着会话过期时间清除,或者业务逻辑主动删除(比如退出登录等)。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值