目录
1.Cookie概念
Cookie 是存储在用户本地终端(如计算机、手机等)上的数据片段。
它主要有以下一些特点和作用:
特点:
小型数据存储:通常用于存储少量的信息。
与特定网站关联:由访问的网站创建和管理。
作用:
用户识别:帮助网站识别用户身份,实现登录状态保持等功能。
个性化设置保存:比如记住用户的偏好设置。
跟踪用户行为:用于分析和优化网站体验。
然而,Cookie 也存在一些隐私方面的问题,可能会被用于跟踪用户的浏览行为等。用户可以在浏览器中对 Cookie 的使用进行一定程度的管理和控制。
在实际开发中,我们很多时候是需要知道请求之间的关联关系的
例如登陆网站成功后, 第二次访问的时候服务器就能知道该请求是否是已经登陆过了.
图中的 "令牌" 通常就存储在 Cookie 字段中
1. 例如到了医院先挂号. 挂号时候需要提供身份证, 同时得到了一张 "就诊卡", 这个就诊卡就相当于患者的 "令牌".
2. 后续去各个科室进行检查, 诊断, 开药等操作, 都不必再出示身份证了, 只要凭就诊卡即可识别出当前患者的身份.
3. 看完病了之后, 不想要就诊卡了, 就可以注销这个卡. 此时患者的身份和就诊卡的关联就销毁了. (类似于网站的注销操作)
4. 又来看病, 可以办一张新的就诊卡, 此时就得到了一个新的 "令牌"
此时在服务器这边需要记录令牌信息, 以及令牌对应的用户信息, 这就是 Session 机制所做的工作
2.理解会话机制 (Session)
服务器同一时刻收到的请求是很多的. 服务器需要清除的区分清楚每个请求是从属于哪个用户, 就需要在服务器这边记录每个用户令牌以及用户的信息的对应关系.
在上面的例子中, 就诊卡就是一张 "令牌". 要想让这个令牌能够生效, 就需要医院这边通过系统记录 每个就诊卡和患者信息之间的关联关系.
会话的本质就是一个 "哈希表", 存储了一些键值对结构. key 就是令牌的 ID(token/sessionId), value 就是 用户信息(用户信息可以根据需求灵活设计).
sessionId 是由服务器生成的一个 "唯一性字符串", 从