一起来学Cookie

是什么

  • Cookie,也叫作小型文本文件,本质上是存储在客户端的数据,网站能够通过这些数据来辨别用户身份
  • 按照数据存储在客户端不同的位置,可以将Cookie分为内存Cookie、硬盘Cookie
  • 内存Cookie和浏览器挂钩,当关闭了浏览器,其占用的内存也就被释放,内存Cookie自然就被清除;也被称为非持久Cookie
  • 硬盘Cookie,顾名思义就是存储在硬盘中的数据,一般都有个过期时间,用户也可以手动清除;也被称为持久Cookie

应用场景

  • 购物车,当用户选中一个商品到购物车,服务器端返回浏览器页面的同时,也会将选中的商品的信息放入Cookie一起发送过去,当用户再选中商品时,浏览器在发送请求上会带上之前的Cookie,服务器接收到后,就能够将新的商品添加到上一次的商品后一起返回响应,这实际上解决了HTTP无状态所带来的客户操作状态无法保存的限制。
  • 网站登录。第一次登录时如果勾选了自动登录,那么服务器端接收到用户的表单数据,进行一系列验证,返回响应时会携带一个加密的Cookie,这段Cookie将存储在用户硬盘中,当第二次登录时,浏览器就可以发送这段Cookie给服务器,服务器验证通过就可以直接登录了。

不足

  • Cookie在服务器端和客户端之间的传输,总是附加在HTTP报文中,增加了流量
  • 在HTTP中,Cookie是明文的,不安全;可以考虑HTTPS
  • 存储大小只有4KB,不适合复杂数据存储