1.存储
Cookie是浏览器,给HTTP协议提供的持久化储存数据的方案
Cookie存储的是键值对,按照域名来进行分类存储
Session存储的也是键值对,只不过在服务器,当用户请求时会分配一个Session(会话)
随机生成一个key,通过Set-Cookie返回给浏览器,而用户的身份信息则会保存在服务器里等待下一次客户端的请求的Cookie带有之前生成的key,到服务器里以哈希表的数据结构找到对应的value就相当于用户的身份信息
2.工作流程
需要注意的是,这里的sessionKey是唯一的
3.Cookie 和 Session 的区别
1.Cookie
是客户端的机制
. Session
是服务器端的机制
.
2.Cookie
和
Session
经常会在一起配合使用
.
但是不是必须配合
.
3.完全可以用
Cookie
来保存一些数据在客户端
.
这些数据不一定是用户身份信息
,
也不一定是
token / sessionId
4.Session
中的
token / sessionId
也不需要非得通过
Cookie / Set-Cookie
传递
.
4.核心方法
HttpSession getSession() 如果是没有HttpSession对象时,需要返回true才能创建对应的Session对象;如果是已经有Session对象,则返回false,服务器会默认Session里为null.在此之前,服务器还会先找看看有没有Session对象,如果有会返回对应的HttpSession对象