session的由来
cookie最大的问题就是键值对保存在客户端的浏览器上,我们看下session是如何保存的呢?
比如一个请求过来,数据是这样的{“username”:"zyb","password":"admin"},这个是时候在服务端这边,保存的格式是这样的
随机字符串1:{“username”:"zyb","password":"admin"}
而返回给客户端的数据是{“随机字符串2”:“随机字符串1”}
就比如下面的图,session就是k1或者k2对应的字典,也就是说,session是保存在服务端的,k1和k2就是为了保存不同用户的数据
上面的图有点简单,可以看下下面的图
流程就是这样的,客户端过来,带着一个随机字符串和k1的值,服务端根据k1的值去获取本地保存的字典,进行验证即可
session定义:session是保存在服务端的键值对,session必须依赖于cookie。
1、在服务端生成随机字符串
2、步骤一生成的随机字符串做为k,用户的数据做为v,将这个大字典保存在服务端
3、把步骤一生成的随机字符串当成cookie返回给客户端
4、浏览器下次来,带着随机字符串来就可以了
5、浏览器发起请求,服务端从cookie中找到随机字符串
6、然后根据随机字符串拿到从服务端获取具体的用户数据