简介
本文档介绍什么是HTTP Cookie以及会话Cookie和持久性Cookie之间有何区别。
背景信息
Cookie是Web服务器发送到浏览器的数据字符串。当浏览器将来从同一域请求对象时,浏览器会将同一字符串的数据发回源服务器。
数据以HTTP报头(称为“Set-Cookie”)的形式从Web服务器发送。 浏览器将Cookie以名为“Cookie”的HTTP报头发送回服务器。
以下是HTTP Cookie事务的示例:
来自Web服务器的HTTP响应:
[...]
Set-Cookie: first.lastname
从客户端的HTTP GET:
[...]
Cookie: first.lastname
在示例事务中,Web服务器通知客户端创建cookie“first.lastname”。 下次客户端从此域请求对象时,会随请求发送cookie。这说明了Web服务器如何能够调出某些信息,如用户登录。
Cookie类型
有两种不同类型的Cookie — 会话Cookie和持久Cookie。如果Cookie不包含到期日期,则它被视为会话Cookie。会话cookie存储在内存中,从不写入磁盘。当浏览器关闭时,Cookie从此点永久丢失。如果Cookie包含过期日期,则它被视为永久Cookie。在到期指定的日期,Cookie将从磁盘中删除。
Cookie可以包含几个不同的字段,用分号分隔。定义如下:
过期
expires="Wdy, DD-Mon-YYYY HH:MM:SS GMT"
确定何时删除cookie。
路径
路径=/
确定返回cookie的路径。在本例中,当转到域中的根路径时,将发送Cookie。
域
domain=what.domain.com
指定cookie用于哪个域。如果与当前浏览的域不匹配,则视为“第三方Cookie”,浏览器将拒绝该域。这会阻止一个域为不同域设置Cookie。