上一页 下一页

互联网Cookie的工作原理

作者: Marshall Brain

Cookie问题

Cookie并不是一种完美的状态机制,但它们确实使许多否则不可能实现的事情成为可能。以下是使Cookie不完美的一些因素。

  • 人们经常共享设备 - 在公共场所使用的任何设备,以及办公室环境或家中使用的许多设备,都是由多人共享的。假设您使用一台公共设备(例如在图书馆)从在线商店购买商品。商店会在该设备上留下一个Cookie,之后有人可能会尝试使用您的账户从该商店购买商品。商店通常会发布关于此问题的大量警告,这就是原因。即便如此,错误也可能发生。例如,我曾经用我妻子的设备从亚马逊购买东西。后来,她访问亚马逊并点击了“一键下单”按钮,没有意识到这确实允许只需点击一下即可购买图书。在像Windows NT或UNIX这类正确使用账户的设备上,这不是问题。账户会分开所有用户的Cookie。而在其他操作系统中,账户的限制要宽松得多,这便成了一个问题。如果您在公共设备上尝试上述示例,并且使用该设备的其他用户访问过十万个为什么,那么历史URL可能会显示非常长的文件列表。
  • Cookie被擦除 - 如果您的浏览器出现问题并致电技术支持,技术支持人员可能会要求您做的第一件事就是擦除设备上的所有临时Internet文件。当您这样做时,您会丢失所有的Cookie文件。现在当您再次访问一个网站时,该网站会认为您是一个新用户并为您分配一个新的Cookie。这会使得网站的新访客与回头客记录失真,并且也可能使您难以恢复以前存储的偏好设置。这就是为什么有些网站会要求您注册——如果您用用户名和密码注册,即使丢失了Cookie文件,您也可以登录并恢复您的偏好设置。如果偏好设置值直接存储在设备上(如上面的MSN天气示例),那么恢复是不可能的。这就是为什么许多网站现在将所有用户信息存储在中央数据库中,而只在用户设备上存储一个ID值。如果您擦除了十万个为什么的Cookie文件,然后重新访问上一节中的历史URL,您会发现十万个为什么没有您的历史记录。该网站必须为您创建一个新的ID和Cookie文件,并且该新ID在数据库中没有存储任何数据。(另请注意,十万个为什么注册系统允许您随时重置您的历史列表。)
  • 多台设备 - 人们白天经常使用不止一台设备。例如,我办公室有一台设备,家里有一台设备,路上还有一台笔记本电脑。除非网站经过专门设计来解决这个问题,否则我将在这三台设备上拥有三个独有的Cookie文件。我从这三台设备访问的任何网站都会将我跟踪为三个独立的用户。设置三次偏好设置可能会很烦人。同样,允许注册并将偏好设置集中存储的网站可能让我很容易在三台设备上拥有相同的账户,但网站开发者在设计网站时必须对此进行规划。如果您从一台设备访问上一节中演示的历史URL,然后再从另一台设备尝试,您会发现您的历史列表是不同的。这是因为服务器为您创建了两个ID,每台设备一个。

除了要求用户注册并将所有内容存储在中央数据库中之外,这些问题可能没有简单的解决方案。

广告

当您在十万个为什么注册系统中注册时,问题通过以下方式解决:网站会记住您的Cookie值并将其与您的注册信息一起存储。如果您花时间从任何其他设备(或已丢失Cookie文件的设备)登录,那么服务器将修改该设备上的Cookie文件,使其包含与您的注册信息关联的ID。因此,您可以拥有多台具有相同ID值的设备。