HTTP Cookie 在用户的 Web 浏览器中存储信息。Web 服务器生成 Cookie 并将其发送给浏览器,然后将 Cookie 包含在未来的 HTTP 请求中。
阅读本文后,您将能够:
复制文章链接
Cookie 是 Web 服务器生成并发送至 Web 浏览器的小型信息文件。Web 浏览器在预定义的时间段内或在用户在网站上的会话期间存储收到的 Cookie。它们将相关的 Cookie 附加到用户今后向 Web 服务器提出的任何请求中。
Cookie 帮助网站了解用户的情况,使网站能够提供个性化的用户体验。例如,电子商务网站使用 Cookie 来了解用户在其购物车中放置了哪些商品。此外,一些 Cookie 对于维护安全必不可少,如身份验证 Cookie(见下文)。
在互联网上使用的 Cookie 也称为“HTTP Cookie”。与大部分网络一样,Cookie 是使用 HTTP 协议发送的。
Web 浏览器将 Cookie 存储在用户设备上的一个指定文件中。例如,Google Chrome Web 浏览器将所有的 Cookie 存储在一个标记为“Cookies”的文件中。Chrome 用户可以通过打开开发者工具,点击“应用”标签,然后点击左侧菜单中的“Cookies”来查看浏览器存储的 Cookie。
用户会话:Cookie 有助于将网站活动与特定用户关联起来。一个会话 Cookie 包含一个独特的字符串(字母和数字的组合),将一个用户会话与该用户的相关数据和内容相匹配。
假设 Alice 在购物网站上有一个帐户。她从网站主页登录她的帐户。当她登录时,网站的服务器会生成一个会话 Cookie 并将 Cookie 发送到 Alice 的浏览器。此 Cookie 告诉网站加载 Alice 的帐户内容,因此主页现在显示“欢迎,Alice”。
然后,Alice 点击了一个显示一条牛仔裤的产品页面。当 Alice 的 Web 浏览器向网站发送一个关于牛仔裤产品页面的 HTTP 请求时,它在请求中包含了 Alice 的会话 Cookie。因为网站有这个 Cookie,所以它能识别出用户是 Alice,当新页面加载时,她不需要再次登录。
个性化:Cookie 帮助网站“记住”用户行为或用户偏好,使网站能够定制用户的体验。
如果 Alice 退出了购物网站,她的用户名可以储存在一个 Cookie 中并发送到她的 Web 浏览器。下次她加载该网站时,Web 浏览器会将这个 Cookie 发送给 Web 服务器,然后服务器会提示 Alice 用上次使用的用户名登录。
追踪:有些 Cookie 会记录用户访问的网站。当浏览器下次需要从该服务器加载内容时,这些信息会被发送到产生 Cookie 的服务器。对于第三方追踪 Cookie,这一过程在浏览器加载使用该追踪服务的网站时就会发生。
如果 Alice 以前访问过一个向她的浏览器发送追踪 Cookie 的网站,这个 Cookie 可能会记录 Alice 现在正在浏览牛仔裤的产品页面。当 Alice 再次加载使用此追踪服务的网站时,她可能会看到牛仔裤的广告。
然而,广告并不是追踪 Cookie 的唯一用途。许多分析服务也使用追踪 Cookie 来匿名记录用户活动。(Cloudflare Web Analytics 是少数不使用 Cookie 提供分析的服务之一,有助于保护用户隐私。)
需要了解的一些重要 Cookie 类型包括:
会话 Cookie 帮助网站追踪用户的会话。会话 Cookie 在用户的会话结束后(即在其退出网站上的帐户或退出网站时)被删除。会话 Cookie 没有到期日期,这向浏览器表明,它们应该在会话结束时立即被删除。
与会话 Cookie 不同,持久性 Cookie 在用户的浏览器中保持预定的时间长度,可能是一天、一周、几个月,甚至几年。持久性 Cookie 总是包含一个到期日期。
身份验证 Cookie 有助于管理用户会话;当用户通过浏览器登录帐户时,就会生成身份验证 Cookie。它们通过将用户帐户信息与 Cookie 标识符字符串联系起来,确保敏感信息被传递给正确的用户会话。
追踪 Cookie 由追踪服务产生。它们记录用户的活动,当浏览器在下次加载使用该追踪服务的网站时,将该记录发送给相关的追踪服务。
就像流行小说中的“僵尸”一样,僵尸 Cookie 在被删除后会重新生成。僵尸 Cookie 在浏览器的典型 Cookie 存储位置之外创建自己的备份版本。它们使用这些备份在被删除后重新出现在浏览器中。僵尸 Cookie 有时被不道德的广告网络使用,甚至被网络攻击者使用。
第三方 Cookie 属于浏览器中显示的域之外的域。第三方 Cookie 最常被用于追踪目的。它们与第一方 Cookie 形成对比,后者与出现在用户浏览器中的同一域关联。
当 Alice 在 jeans.example.com 购物时,jeans.example.com 源服务器使用一个会话 Cookie 来记住她已经登录了她的帐户。这是一个第一方 Cookie 的示例。然而,Alice 可能不知道来自 example.ad-network.com 的 Cookie 也存储在她的浏览器中,并追踪她在 jeans.example.com 上的活动,即使她目前并没有在访问 example.ad-network.com。这是一个第三方 Cookie 的示例。
如上所述,Cookie 可被用来记录浏览活动,包括用于广告目的。然而,许多用户并不希望他们的在线行为被追踪。用户也缺乏对追踪服务如何处理其所收集数据的可见性或控制。
即使基于 Cookie 的追踪不与特定用户的姓名或设备相联系,但通过某些类型的追踪,仍有可能将用户的浏览活动记录与他们的真实身份联系起来。这些信息可能被用于任何方式,从不需要的广告到监控、追踪或骚扰用户等等。(这并不是所有 Cookie 的使用情况。)
一些隐私法(如欧盟的《电子隐私指令》)涉及到处理和管理 Cookie 的使用。根据该指令,用户必须提供“知情同意”——他们必须被告知网站如何使用 Cookie 并同意这种使用方式——网站才能使用 Cookie。(网站运行“绝对必要”的 Cookie 例外。)欧盟的《通用数据保护条例》(GDPR) 将 Cookie 标识符视为个人数据,因此其规则也适用于欧盟的 Cookie 使用。此外,Cookie 收集的任何个人数据都属于 GDPR 的管辖范围。
很大程度上由于这些法律,许多网站现在都会显示 Cookie 横幅,允许用户查看和控制这些网站使用的 Cookie。