cookie相关

由于HTTP本身是无状态的,服务端无法区分谁是谁,所以有了cookie的概念。cookie的作用之一也就是区分用户,存储用户信息。

cookie来去

cookie由服务端在响应头中通过set-cookie下发,浏览器接收到后,会自动将cookie中的字段保存起来,下次再发起请求时会自动在请求头中携带cookie

cookie的属性

  • Domain:cookie的作用域,默认 /从A域名得到的cookie数值只有在请求A域名相关地址/接口时才会携带。未设置时,与document.domain或者location.hostname相等。
  • path:可以共享 Cookie 的子目录,默认 / 根目录。
  • Expires/Max-Age:有效期,不设置则关闭浏览器时自动清空cookie,Expires绝对时间,Max-Age相对时间(秒)。Max-Age优先级较高。
  • HttpOnly:为true时,不可被JavaScript获取到。
  • sameSite:限制第三方cookie的发送场景
    • Strict:严格模式,完全禁止第三方cookie,跨站点时,任何情况下都不会发送 Cookie。
    • Lax:默认值。除了
      均不发送第三方cookie。
    • None:跨站都发送。

跨域携带cookie需求满足以下条件

  • 客户端请求头携带 withCredentials = true
  • 服务端设置
    • Access-Control-Allow-Origin: 特定域名
    • Access-Control-Allow-Credentials: true
    • samesite: none
作者: 果汁
文章链接: https://guozhigq.github.io/post/c1214502.html
版权声明: All posts on this blog are licensed under the CC BY-NC-SA 4.0 license unless otherwise stated. Please cite 果汁来一杯 !