HTTP–基础–09–Header–Cookie
1、介绍
2、Set-Cookie
Set-Cookie: status-enable; expires=Tue, 05 Jul 2018 02:01:22 GMT; path=/; domain=.example.com;
当服务器准备开始管理客户端的状态时,会事先告知各种信息。下面表格列举了 Set-Cookie 的字段值。
2.1、expires 属性
- 指定浏览器发送 Cookie 的有效期。
- 当省略expires属性时,其有效期仅限于维持浏览器会话(Session)时间段内。这通常限于浏览器应用程序被关闭之前。
- 一旦Cookie从 服务端 发送至 客户端,服务端 就不存在可以显示删除 Cookie 的方法。但可以通过覆盖已过期的Cookie,实现对客户端Cookie的实质性删除操作。
2.2、path 属性
- 用于限制指定 Cookie 发送范围的文件目录。
2.3、domain 属性
- 指定的域名
- 可做到与结尾匹配一致。比如,当指定 example.com 后,除 example.com 以外,www.example.com 或 www2.example.com 等都可以发送 Cookie 。
2.4、secure 属性
- 用于限制 web 页面仅在 HTTPS 安全连接时,才可以发送 Cookie 。
- 发送 Cookie 时,指定 secure 属性的方法如下所示。
案例
Set-Cokkie: name=VALUE; secure
以上例子仅当在 https://www…(HTTPS)安全连接的情况下才会进行 Cookie 的回收,也就是说,即使域名相同,http://www…(HTTP)也不会发生 Cookie 的回收行为。 当省略 secure 属性时,不论 HTTP 还是 HTTPS ,都会对 Cookie 进行回收。
2.5、HttpOnly 属性
- 使 JavaScript 脚本无法获得 Cookie
- 目的为防止跨站脚本攻击(Cross-sitescripting,XSS)对 Cookie 的信息窃取。
案例
Set-Cookie: name=value; HttpOnly
从 web 页面内还可以对 Cookie 进行读取操作。但使用 JavaScript 的 document.cookie 就无法读取附加 HttpOnly 属性后的 Cookie 的内容了。因此,也就无法在 XSS 中利用 JavaScript 劫持 Cookie 了。
3、Cookie
Cookie: status=enable
- 告知服务端,当客户端想获得 HTTP 状态管理支持时,就会在请求中包含从服务端接受到的Cookie 。
- 接受到多个Cookie 时,同样可以以多个Cookie 形式发送。
|