管理服务器与客户端之间的状态而 Cookie,虽然没有被编入标准化 HTTP/1.1 的 RFC2616 中,但在 Web 网站方面得到了广泛的应用。
Cookie 的工作机制是用户识别及状态管理。 Web 网站为了管理用户的状态会通过 Web 浏览器,把一些数据临时写入用户的计算机内。接着当用户访问该 Web 网站时,可通过通信方式取回之前发放的 Cookie。
首部字段名 | 说明 | 首部类型 |
---|---|---|
Set-Cookie | 开始状态管理所使用的Cookie信息 | 响应首部字段 |
Cookie | 服务器接收到的Cookie信息 | 请求首部字段 |
1.Set-Cookie
Set-Cookie: status=enable; expires=Tue, 05 Jul 2011 07:26:31 GMT; path=/; domain=.hackr.jp;
Set-Cookie字段的属性**
属性 | 说明 |
---|---|
NAME=VALUE | 赋予 Cookie 的名称和其值(必须项) |
expires=DATE | 指定浏览器可发送 Cookie 的有效期(若不指定则默认为浏览器关闭为止) |
path=PATH | 将服务器上的文件目录作为 Cookie 的适用对象(若不指定则默认为文档所在的文件目录) |
domain=域名 | 作为 Cookie 适用对象的域名(若不指定则默认为创建 Cookie 的服务器的域名) |
Secure | 仅在 HTTPS 安全通信时才会发送 Cookie |
HttpOnly | 加以限制,使 Cookie 不能被 JavaScript 脚本访问。主要目的是为防止跨站脚本攻击对 Cookie 的信息窃取。 |
一旦 Cookie 从服务器发送到客户端,服务端就不存在可以显示删除 Cookie 的方法。但可以通过覆盖已过期的 Cookie,实现对客户端 Cookie 的实质性删除操作。
secure 属性
该属性用于限制 Web 页面仅在 HTTPS 安全连接时,才可以发送 Cookie 。具体使用如下
Set-Cookie: name=value; secure
提示:当省略 secure 属性时,不论 HTTP 还是 HTTPS ,都会对 Cookie 进行回收。
2. Cookie
Cookie: status=enable
首部字段 Cookie 会告知服务器,当客户端想获得 HTTP 状态管理支持时,就会在请求中包含从服务器接收到的 Cookie。 接收到多个 Cookie 时,同样可以以多个 Cookie 形式发送。