Cookies

159 阅读1分钟
  • 4KB 左右,多用于存储身份信息。
  • 组成: image.png
    • name=value;:cookie 的 name 与其值,也是请求携带时的样子。
    • expires:GMT 格式的时间,规定 cookie 的过期时间点,默认为浏览器关闭前。
    • max-age:秒级时间段,规定 cookie 的有效时常,优先级高于 expires
    • domain & path: 请求的 URL 为该域名或子域名和该路径或子路径组合时,浏览器会将 cookie 添加到请求头。默认值分别为设置该 cookie 的网页的域名和路径。
    • secure: 开启后,只有当请求符合 HTTPS 或其他安全协议时,才会被浏览器添加至请求头,默认不开启。
    • httpOnly: 是否限制 JS 对 cookie 的访问(读取、修改、删除),默认不开启,另外客户端无法设置一个 httpOnly 的 cookie,该属性仅能由服务端设置。
  • 自动携带:
    • XHR:默认不携带,需配置 withCredentials
    • ajax:对 XHR 的封装,支持 JSONP,同源携带,跨域需配置 credentials
    • axios / jQuery:对 ajax 的封装,同源携带,跨域需配置 withCredentials
    • fetch:与 XHR 同级,默认不携带,需配置 credentials
    • 跨域携带 cookie 服务端配置:
      Access-Control-Allow-Credentials: true;
      Access-Control-Allow-Origin: requestDomain / *;