网站导航:首页-计算机网络知识-HTTP Header 中 Set-Cookie 的语法

HTTP Header 中 Set-Cookie 的语法

最近更新:2019-12-01

与Cookie相关的HTTP Header有两个,分别是 CookieSet-Cookie

Set-Cookie 由服务器发送,包含在响应请求的Header中,用于在客户端创建一个Cookie;

Cookie 由客户端发送,包含在HTTP请求的头部中。

Set-Cookie的语法

Set-Cookie 的语法如下:

set-cookie:name1=value1[; name2=value2]...[; nameN=valueN][; expires/max-age=...][; domain=...][; path=...][; SameSite=...][; secure][; httponly]

其中多组 namevalue 是设置的cookie的字段与值;

expires/max-age 是设置的cookie的有效期,cookie过期后会失效,如果不设置此参数或设置max-age为0,则在关闭浏览器后失效。当使用max-age字段时,值为cookie有效的秒数,当使用expires时,此值为失效的时间,应使用GMT时间表示,格式为WEEK, DD-MM-YYYY HH:MM:SS GMT

WEEK
    星期的英文简写(Sun Mon Tue Wed Thu Fri Sat).
DD
    日期(本月的第几天)
MM
    月份的英文简写(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec).
YYYY
    年份
HH
    小时(24小时计时法)
MM
    分钟
SS
    秒钟

domain 是域名,访问域名一致时才发送cookie,但要注意,没有设置 expires 的 Cookie 不能设置domain

path 为路径,当访问的路径一致时才发送cookie。

SameSite 是自从Chrome 51开始,浏览器的Cookie新增加的属性,用来防止 CSRF 攻击和用户追踪。此字段有3个值,分别是 StrictLaxNoneStrict 表示跨域时完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上Cookie;Lax表示大多数情况也不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外;None 表示一律发送cookie,但此值必须在同时设置Secure时才有效。更多关于 SameSite 的信息可参考阮一峰大神的网络日志

secure 表示 Cookie 只能通过 HTTPS 协议发送。

httponly 表示 Cookie 不能被客户端脚本获取到。

到底线啦,请:返回目录页|返回首页