Skip to content

cookie常用字段

后端设置cookie:响应头Set-Cookie

前端操作cookie:document.cookie

cookie字段说明

name/value


Domain

设置cookie可以送达的主机名(默认为当前主机)

例如设置为 .taobao.com,则xxx.taobao.com有效

跨域设置无效,例如:Set-Cookie: qwerty=219ffwef9w0f; Domain=baidu.com;

注意

Cookie的作用域不区分协议和端口,参考:http://blog.haoji.me/cookie-scope.html


Path

设置URL中必须包含该路径才会发送该条cookie信息

例如设置Path=/docs,则发送请求时/docs/xxx才会携带该cookie


Expires

设置cookie过期时间(根据本地时间)

示例:Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;

缺少Expires字段时表示会话性cookie,关闭浏览器失效

Max-Age

设置cookie在指定秒后过期(优先级高于Expires)

Set-Cookie: id=a3fWa; Max-Age=604800;

为负数是表示为会话性cookie


Secure

标记Secure的cookie只会通过https才会发送


HTTPOnly

阻止客户端通过document.cookie访问cookie。【防止XSS(跨站脚本攻击)】


SameSite 在跨站请求时不发送Cookie【阻止CSRF(跨站请求伪造)攻击】

参考: Cookie 的 SameSite 属性

Strict

  • 最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie. 只有当前网页的 URL 与请求目标一致,才会带上 Cookie

Lax

  • Lax 允许部分第三方请求(a链接、get表单、预加载)携带cookie(chrome80的默认值)

image

None(cookie的属性设置为必须同时设置Secure,否则不会生效)

  • None 无论跨站都会发送cookie(chrome80之前的版本默认值)

WARNING

cookie的SameSite属性为None,Dom标签跨域才会发送cookie

  • Set-Cookie: widget_session=abc123; SameSite=None; Secure

SameParty 【暂未全面开放】

为了应对第三方cookie逐渐消失; 通常用于单点登录等

  • SameParty Cookie 必须包含 Secure.

  • SameParty Cookie 不得包含 SameSite=Strict.

详细用法参考:参考