Cookie的出现是因为http连接是无状态啊的,为了记录用户的登录状态,引入了cookie这个概念,cookie是将信息都存储在客户端以文件的形式存储。
因为cookie是将敏感信息存储在客户端上,所以安全性得不到保障。所以引入了session这个概念,session是将用户的信息存储在服务端上,可以保证数据的安全。Session在服务端创建后,会返回给客户端session_Id。目前session通用的两种使用方式,一种是将session的信息存储在客户端的cookie上,通过cookie来发送。一种是将信息通过重写URL附加在URL的后面。
Session存在几个问题
1.如果客户流量太大了,服务端session信息存储的空间就大,可能会引起内存溢出的问题
2.不能够适应分布式的系统
3.可扩展性不够
Session的前两个问题都可以通过引入第三方非关系型数据库解决,第三个问题可以通过同一域名下放大cookie和session的作用域来解决单点登录的问题,如果是跨域名的话,就不是很好解决
从而引入token机制来解决session可扩展性不够的问题,session能做的,token都能做,主要是解决可扩展性这块,token不需要依赖cookie所以不考虑作用域的问题,不同的系统可以通过切换token来实现单点登录的问题
关于session、cookie、token 的思考
最新推荐文章于 2024-07-20 18:16:53 发布