<译> 什么是 cookie?

由于自己对于 cookie 是什么一直懵懵懂懂,搜到这篇文章不错,就翻译出来。

原文地址:What Are Cookies?


什么是 Cookie?

Cookie 是存储在用户计算机内部的小型文件。它们是用来存储特定客户端或者网站的适量的数据,并且可以被网络服务器或者客户端计算机使用。服务器可以针对特定的 cookie 传输给用户特定的页面,页面本身也可以通过它携带的脚本获取 cookie 中的数据,实现页面跳转间的数据传递。

我的浏览器中允许使用 cookie 吗?

如果你想知道你的浏览器是否打开了允许 cookie 的开关,可以访问 Cookie checker
这个页面会创建一个 cookie,然后告诉你它是否创建成功了。

如何允许/禁止 cookie,可以访问 Enabling cookies
如何删除或者清空 cookie,可以访问 Deleting cookies

我可以看我计算机中的 cookie 吗?

大部分浏览器都会有查看 cookie 的页面,在这个页面也可以删除它们。了解更多信息访问 viewing cookies

一个网站访问另一个网站创建的 cookie 是不可以的,因为这会引发隐私和安全问题。

Cookie 中有什么?

每个 cookie 都是一张 key-value 型的表,例如 firstname: John。服务器或者客户端电脑可以通过代码将其中数据取出来,然后用于自定义页面。

Cookie 什么时候被创建出来的?

通常一个页面加载完成时会向 cookie 中写入数据,例如,在用户点击了 「提交」按钮,处理数据的页面应该把数据存储在一个 cookie 中。如果用户选择关闭 cookie,这个写入数据的过程就会失败,以后依赖于 cookie 显示的网页就会选择默认的行为,或者要求用户重新输入应该存储在 cookie 中的内容。

Cookie 为什么会被使用?

Cookie 作为一种在网页中跳转存储信息的很方便的方式,不需要传输大量的数据打扰服务器。如果把数据都存储在服务器而不使用 cookie 也会有一些问题,因为服务器对于特定用户信息的获取如果不验证登陆的话,取数据会有些困难。

如果有大量的数据需要存储,cookie 可以被用作一种识别用户身份的工具,以后的相关信息就可以在服务端的数据里查询了。例如,用户第一次访问某个网站,用户名会被存储在 cookie 中,还有一些信息比如密码、姓名、地址、首选字体、页面布局等,它们会被存储在数据库中,以用户名作为键值。网站服务器可以从 cookie 中获取用户名,然后从数据库中查询相关信息,这样用户就不需要重新输入一些内容了。

Cookie 会存在多久?

在 cookie 被创建的时候,它可以被设定存活时间。通常 cookie 会在当前浏览器窗口关闭以后被销毁,但是它也可以被设置为在这以后长时间存在。

谁可以访问 Cookie?

当 cookie 被创建的时候,可以设置它可以被可见的「根域名」。然后,它就可以被任何输入那个根域名的所有 URL 访问了。例如,根可以设置为 whatarecookies.com,cookie 就可以被 www.whatarecookies.com 或者 xyz.whatarecookies.com 或者 whatarecookies.com 访问了。这可以用于相关页面「通信」的一种方式。把根域名设置为「顶级」域名例如 .com 或者 .co.uk 也是不被允许的,因为它会被很多域名获取到。

通常 cookie 会被域名下的所有路径访问到,但是在它们被创建的时候,也可以选择被特定的路径获取,例如www.whatarecookies.com/images

Cookie 有多安全?

互联网有许多关于隐私和安全的担忧。但是 cookie 并不是一种隐私的威胁途径,因为它们只能存储用户提交过的信息或者说服务器已经存在的信息。同时这些信息可能会被指定的第三方网站获取到,这些信息存在中央数据是很没有必要的。如果你担心你向服务器提交过的信息不会被当做机密的话,那么你该问自己是否真的需要提供这些信息(这句话没太看懂)。

谁在跟踪 cookie?

一些商业网站内置一些第三方网站提供的广告,网站可以为这个广告,为这些第三方的网站存储 cookie。例如包含的信息应该有,网站的名字,被浏览的制定商品,浏览的次数等等。当用户访问另一个包含相同第三方广告的网站的时候,广告商就可以读取 cookie,根据用户的浏览历史投放信息。这使得广告商投放的广告更加精准,跟用户更加相关。然而某些用户把这种「跟踪 cookie」的行为看成一种隐私入侵,因为网站允许广告商搜集用户信息却没有经过他们的同意。