维基百科定义

Cookie(复数形态Cookies),又称为“小甜饼”。类型为“小型文本文件”[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。由网景公司的前雇员卢·蒙特利在1993年3月发明[2]。最初定义于RFC 2109。当前使用最广泛的 Cookie标准却不是RFC中定义的任何一个,而是在网景公司制定的标准上进行扩展后的产物。

我的理解

  1. Cookie就是用户登录网站,浏览器去访问服务器问这个人能不能登录,然后服务器传送给浏览器的一段数据。
  2. 浏览器会保留这段数据,不能随便删除(一般默认20分钟左右,浏览器不同具体时间不同)
  3. 然后这段时间内用户通过浏览器继续访问服务器,都必须带一个Cookie
  4. Cookie 默认在用户关闭页面后就失效,后台代码可以任意设置 Cookie 的过期时间
  5. 大小大概在 4kb 以内

Cookie的特点

  1. 服务器通过 Set-Cookie 响应头设置Cookie
  2. 浏览器得到Cookie之后,每次请求都要带上Cookie
  3. 服务器读取Cookie就知道登录用户的信息(用户名啥的)

如何使用 Cookie

Cookie 一般有两个作用。

第一个作用是识别用户身份

比如用户小红用浏览器访问了 http://qq.com,那么qq 的服务器就会立刻给小红返回一段数据就是Cookie。当 小红 再次访问qq的其他页面时,就会附带上这段数据。

同理有个小白用浏览器访问了 http://qq.com,那么qq 的服务器就会立刻给小白返回一段数据就是Cookie。当 小白 再次访问qq的其他页面时,就会附带上这段数据。

借此,http://qq.com 的服务器就能区分 小白和 小红 两个用户了。

第二个作用是记录历史

http://taobao.com 是一个购物网站,当 小红 在上面将商品 白鞋 、酱油 加入购物车时,JS 可以改写 Cookie,在Cookie中添加两个商品的信息,表示购物车里有 白鞋 和 酱油 两样商品了。

这样一来,当用户关闭网页,过三天再打开网页的时候,依然可以看到 白鞋、酱油 躺在购物车里,因为浏览器并不会无缘无故地删除这个 Cookie。

借此,就达到里记录用户操作历史的目的了。