保存在客户端、由浏览器维护、表示应用状态的HTTP头部

  • 存放在内存或者磁盘中
  • 服务器端生成Cookie在响应中通过Set-Cookie头部告知客户端(允许多个Set-Cookie头部传递多个值)
  • 客户端得到Cookie后,后续请求都会自动将Cookie头部携带至请求中

Cookie与Set-Cookie头部定义

image.png

Set-Cookie中描述cookie-pair的属性

image.png

Cookie使用的限制

  • RFC规范对浏览器使用Cookie的要求
    • 每条Cookie的长度(包括name、value以及描述的属性等总长度)至少要达到4KB
    • 每个域名下至少支持50个Cookie
    • 至少要支持3000个Cookie
  • 代理服务器传递Cookie时会有限制

Cookie在协议设计的问题

  • Cookie会被附加在每个HTTP请求中,所以无形中增加了流量
  • 由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题(除非用HTTPS)
  • Cookie的大小不应超过4KB,故对于复杂的存储需求来说是不够用的