会话管理之Session、cookie、token

本文详细介绍了Web会话管理中的核心概念——Session、Cookie和Token。讨论了HTTP的无状态特性以及为解决会话管理问题引入的Session机制,包括其工作原理和存储方式。接着,解释了Cookie的作用和限制,并探讨了Token如何克服Session的存储开销,提供更好的安全性、可扩展性和跨域支持。最后,提到了会话管理类漏洞,如会话劫持和会话固定,及其防御策略。

会话管理之Session、cookie、token

HTTP是无状态的,每次请求都是一个新的HTTP协议,就是请求加响应,不知道是谁刚刚发了HTTP请求,每个请求都是全新的。但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统, 哪些人往自己的购物车中放商品,也就是说必须把每个人区分开。
一、 session
为解决上面的问题,想出的办法就是给大家发一个会话标识(session id),就是一个随机的字串,每个人收到的都不一样, 每次大家向服务器发HTTP请求的时候,把这个字符串给一并捎过来, 这样就能区分开谁是谁了。
session存在于服务器中,可以存放用户的状态信息,客户端发送请求时,服务器会生成一个session对象,session对象生成一个对应的sessionID返回给客户端,客户端再次请求时会在cookie中携带该sessionID随请求一起发送给服务器,服务器对sessionID进行验证是否有效。
在这里插入图片描述

二、 Cookie
cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
三、 token
如上所述,服务器要保存所有人的session id,如果访问服务器多了,就得由成千上万,甚至几十万个。这对服务器来说是一个巨大的开销 ,严重的限制了服务器扩展能力,比如说用两个机器组成了一个集群,小F通过机器A登录了系统,那session id会保存在机器A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考拉007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值