Cookie 是一种保存在客户端本地的数据,可以附在 HTTP 请求头中发送给服务器,也可以由服务器通过 HTTP 响应头设置给客户端。

Cookie 分为两种:

  1. 保存在本地文本文件里面(可长期保存);
  2. 保存在浏览器的内存里面(浏览器关闭,数据消失)。

Session 是一种保存在服务器内存中的数据。

JavaWeb 中通过 Session 来辨识客户身份的方式:

  1. 客户端发起请求;
  2. 服务器接收到请求,生成一个 SessionID,把这个 SessionID 记录在内存中,并通过 Cookie 的机制把 SessionID 发送给客户端;
  3. 客户端接受到 Cookie 之后把 Cookie 保存起来,之后每次请求的时候都会在请求报文中附带 Cookie 的信息;
  4. 服务器接受到客户端发送过来的 Cookie 信息,与现存的 Session 进行比对,判断客户端的身份。