set-cookie
1
| Set-cookie: value[; expires=date][; domain=domain][; path=path][; secure]
|
每个选项都是用分号和空格来分开,每个选项都制定了 cookie 在什么情况下会发送给服务器
过期时间选项
- expires: 指定了 cookie 最长存储时间,过期后会被浏览器删除。值是一个 date ,格式为 WDY,
DD-mm-YYYY HH:MM:SS GMT
。
- 没有设置 expires 选项时,默认为当前会话,所设置的 cookie 在关闭浏览器时会被删除。
1
| Set-cookie: name=Jack; expires=Tue, 28 May 2019 22:33:22 GMT
|
domain 选项
- domain: 指定了 cookie 将要被发给哪个域中。
- 默认情况下会被设置为当前域。
- 值必须是消息头主机的一部分,不合法的 domain 会直接被忽略。
1
| Set-cookie: name=Jack; domain=baidu.com
|
path 选项
- path: 指定了请求资源的 URL 中存在指定路径时,才会发送 cookie。
- 只有对 domain 匹配成功后才会开始匹配 path 部分。
1
| Set-cookie: name=Jack; domain=baidu.com; path=/
|
secure 选项
- secure: 只是一个标记,当请求通过 SSL 或者 HTTPS 创建时,包含 secure 的 cookie 才会被发送至服务器。
- 默认情况下, HTTPS 上传输的 cookie 都会被自动加上 secure 选项。
1
| Set-cookie: name=Jack; secure
|
HTTPOnly 选项
- HttpOnly: 禁止浏览器通过 JavaScript 来获取 cookie ,防止 XSS 攻击。
- 这个属性也不能通过 JavaScript 来设置。
1
| Set-cookie: name=Jack; HttpOnly
|
cookie 自动删除
- 会话结束。
- 超过过期时间。
- cookie 数量达到限制,删除部分 cookie 以便为新创建的 cookie 腾出空间。
JavaScript 读取 cookie
可以使用document.cookie
来读取 cookie 的值。