什么是 cookie

http 协议虽然是基于 tcp 协议的应用层协议,但是他是 无连接无状态 的。但是我们在实际使用的过程中是需要一个状态的,但是 http 协议不负责维护这个状态。所以浏览器使用本地化的存储来维护状态,在每次发起请求的时候,浏览器会自动携带该状态信息,这个本地化的存储,就是 cookie

cookie 的生成过程

  1. cookie 的生成不一定是单纯的在浏览器端,可能是服务器端创建号的一个随机字符串,该随机字符床对应用户信息,在服务器端形成 kv 键值对。
  2. 服务器会将随机的字符串返回给浏览器,通过响应头里面的 set-cookie 把该随机字符串返回给浏览器。
  3. 浏览器接收到 set-cookie 的响应头之后,自动把该值保存在本地浏览器的 cookie 中。
  4. 当浏览器在该网站发起请求(参考标准是 url),都会自动携带本地存储的 cookie。
  5. 通过这一系列过程,服务器端就知道客户端的信息了

上述过程叫 保持会话,session。所以,cookie 可以保持用户状态。