什么是 Cookie
Cookie 是一个标识,后端通过 set-cookie 响应头来颁发,浏览器在收到这种 response 后,之后的请求会自动添加 cookie 请求头,对于后端来说,一个 cookie 通常对应一个用户。因为 HTTP 是无状态的,即后端是无法区分前后两次请求是否来自于同一个用户。所以在涉及到要保留登录状态相关功能的时候,是期望可以从一个请求来判断出:这个用户是已经登录了,还是没有登录。
什么是 Session
Session 一般是一个 HashMap,存储在内存中。由于我们希望通过 Cookie 来存储用户信息,但是 Cookie 的大小有限,而且 Cookie 上直接存储用户信息有安全问题,那么我们可以在 Cookie 上存储一个 SessionId,然后在 Session 中建立 SessionId 与用户信息的关联关系,这样我们既没有在 Cookie 上暴露用户信息,又可以通过 Cookie 来识别不同的用户。