Cookie
管理服务器与客户端之间状态的 Cookie, 虽然没有被编入标准化HTTP/1.1 的 RFC2616 中, 但在 Web 网站方面得到了广泛的应用。
Cookie 的工作机制是用户识别及状态管理。 Web 网站为了管理用户的状态会通过 Web 浏览器, 把一些数据临时写入用户的计算机内。 接着当用户访问该Web网站时, 可通过通信方式取回之前发放的Cookie。
调用 Cookie 时, 由于可校验 Cookie 的有效期, 以及发送方的域、 路径、 协议等信息, 所以正规发布的 Cookie 内的数据不会因来自其他Web 站点和攻击者的攻击而泄露
为Cookie服务的首部字段
1. Set-Cookie(响应首部)
Set-Cookie: status=enable; expires=Tue, 05 Jul 2011 07:26:31
,下面是Set-Cookie
的属性值
-
Name=Value :赋予 Cookie 的名称和其值(必需项)
-
expires=DATE:Cookie 的有效期(若不明确指定则默认为浏览器关闭前为止)
当省略 expires 属性时, 其有效期仅限于维持浏览器会话(Session)时间段内。 这通常限于浏览器应用程序被关闭之前。 -
path=PATH:将服务器上的文件目录作为Cookie的适用对象(若不指定则默认为文档所在的文件目录)
Cookie 的 path 属性可用于限制指定 Cookie 的发送范围的文件目录。不过另有办法可避开这项限制, 看来对其作为安全机制的效果不能抱有期待。 -
domain=域名:作为 Cookie 适用对象的域名 (若不指定则默认为创建 Cookie的服务器的域名)
通过 Cookie 的 domain 属性指定的域名可做到与结尾匹配一致。 比如, 当指定example.com
后, 除example.com
以外,www.example.com
或www2.example.com
等都可以发送 Cookie。 -
Secure:仅在 HTTPS 安全通信时才会发送 Cookie
Cookie 的 secure 属性用于限制 Web 页面仅在 HTTPS 安全连接时, 才可以发送 Cookie。 -
HttpOnly:使 Cookie 不能被 JavaScript 脚本访问
Cookie 的 HttpOnly 属性是 Cookie 的扩展功能, 它使 JavaScript 脚本无法获得 Cookie。 其主要目的为防止跨站脚本攻击(Cross-sitescripting, XSS) 对 Cookie 的信息窃取。
2.Cookie(请求首部)
Cookie: status=enable
首部字段 Cookie 会告知服务器, 当客户端想获得 HTTP 状态管理支持时, 就会在请求中包含从服务器接收到的 Cookie。 接收到多个Cookie 时, 同样可以以多个 Cookie 形式发送。
如Cookie: JSESSIONID=6C57D13D5D1EF3BE097C3ED2AD5157AA
网友评论