cookie

  1. 定义: 某些网站为了辨别用户身份而存储在用户本地终端上的数据,类型为小型文本文件。
  2. 场景: 浏览器会在特定的情况下携带上cookie来发送请求,我们可以通过cookie来获取一些信息。
  3. 分类:
    (1) 内存cookie
    i. 定义: 存储在浏览器,由浏览器保存,浏览器关闭就会清除
    (2) 硬盘cookie
    i. 定义: 存储在硬盘中,有过期时间,时间到期清除或者用户手动清除
    (3) Q:如何判断是内存cookie还是硬盘cookie?
    A: cookie设置了过期时间,且过期时间不为0或者负数,那么就是硬盘cookie

备注: 主要由服务器端生成并设置在客户端(并不是我们手动设置),客户端也主动可以设置,比较少。
通过响应头(response header)中的set-cookie自动设置到客户端
设置后同一服务器的请求会自动在请求头 (request header)中携带cookie

常用属性

  1. domain
    (1) 定义: 指定哪些主机可以接收cookie
    (2) 默认值: origin,不包括子域名

  2. path
    (1) 定义: 指定主机下的那些路径可以接收cookie
    (2) 使用: 如果设置 /docs, 那么 /docs/a , /docs/b 都可以接收

  3. max-age
    (1) 定义:设置过期时间

客户端(JS)操作cookie

  1. document.cookie
    使用: 不能获取服务器设置的cookie,可以设置或者获取js设置的cookie

cookie缺点

  1. 浪费客户流量,每次相同域名下的请求都会自动携带cookie
  2. cookie明文传输Headers,存在一定安全风险
  3. 大小限制为4KB

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!