每次你打开一个网站,
购物车还在,
登录状态还在,
你上次看到一半的文章,还在。
这一切,来自一个 23 岁的年轻人在 1994 年写的几行代码。
你每天都在用他发明的东西,
但你可能从来没有听过他的名字。
▋ 互联网曾经有一个很大的问题
早期的互联网,有一个没有人谈起、但每个人都在经历的问题。
网站没有记忆。
你在第一页加进购物车的东西,
跳到第二页就不见了的咯。
你刚刚登录的账号,
点击一个链接之后,网站又不认识你了。
HTTP 协议本来就是「无状态」的:每次你请求一个新页面,服务器都把你当成一个从来没有见过的陌生人。
购物车做不了。
登录状态维持不了。
任何需要「记住你」的功能,全部做不了。
这个问题,所有人都知道,但没有人知道怎么解决。
▋ 最简单的答案,往往最危险
1994 年,Lou Montulli 是 Netscape 的一名工程师,当时只有 23 岁;他的工作是帮 Netscape 浏览器解决各种各样的技术问题,而购物车消失的问题,正正的就落在他手上了的咯。
最简单的解决方案,其实很明显。
给每个浏览器一个永久的 ID 号码,
网站读取这个号码,就知道你是谁了。
但 Montulli 把这个方案否决了。
他看到了别人没有看到的危险:一个永久的浏览器 ID,意味着任何人都可以追踪你在整个互联网上的所有行为的哟;这不是解决问题,这是制造一个更大的问题。
所以他选了一条更难走的路。
▋ 他从一本旧程序手册里找到了答案
Montulli 从一个叫做「magic cookie」的旧编程概念里得到了灵感:
他把 Unix 程序里“只在当前程序内部循环使用的小数据包”这个概念,搬到了 Web 上,变成了“网站可以在你浏览器里存一小块数据,之后每次请求时自动带回”。
不是给浏览器一个全局的 ID,
而是让每一个网站,
只能存放、只能读取属于自己的那一小块数据。
不是永久的、全局的 ID,而是每个网站只保存自己的小块数据
你的银行可以记住你的登录状态,
你的购物网站可以记住你的购物车,
但银行看不到购物车里有什么,
购物网站也看不到你的银行资料的哟。
在 1994 年的秋天,他写下了这一段代码:Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT,整个文件大约只有 4K 左右。
HTTP Cookie 就这样诞生了。
▋ 然后,事情开始走歪了
Cookie 发布之后,反应出奇地平静。
Cookie 被引入的时候,公众几乎完全不知道这件事;没有任何新闻报道,没有任何争议,也没有很多人注意到。
但两年后,广告商发现了一件事。
如果他们在很多不同的网站上,
都嵌入同一个来自广告网络的小元素——
一张图片、一段代码、一个追踪像素——
那这个广告网络就可以在所有这些网站上放置同一个 Cookie,
然后跟踪你在整个互联网上的行为了。
Montulli 一直试图避免的那件事,发生了;不是通过他的设计,而是通过多个网站和广告网络之间的「串谋」。
他设计 Cookie,是为了保护你的隐私。
结果它反而变成了一个监控你的工具。
▋ 他有没有后悔?
这是很多人想问他的问题。
Montulli 的回答是:他后悔的不是 Cookie 本身,而是第三方 Cookie 被滥用的方式;他一直强调,第一方 Cookie:也就是网站用来记住你的登录状态和购物车的那种:完全没有隐私问题的,这正是 Cookie 被设计出来要做的事情。
他后悔的,是他当时没能阻止广告商把他的发明变成别的东西。
在 90 年代中期,他逐渐意识到 Cookie 被广告网络滥用
一个工程师,
面对的不只是技术问题,
还有整个广告产业的利益,
还有公司里没有人有时间管这件事的现实。
他没有赢。
▋ 他还做了很多你不知道的事
Cookie 只是 Lou Montulli 做过的事情之一。
他还发明了 blink 标签(就是那个让文字闪烁的标签,后来被全世界的设计师骂翻了)、server push、client pull、HTTP proxying 等等的;他也是 Lynx 这个早期文字浏览器的主要开发者之一。
他在 Netscape 之后,
创办了好几家公司,
做云存储,做航空数据分析的哟。
直到 2022 年,他才第一次被 Hidden Heroes 这个项目公开表彰,承认他对互联网的重要贡献。
发明 Cookie 的那一年,他 23 岁。
被公开表彰,已经是 28 年之后的事了。
▋ 每次你点「接受所有 Cookies」的时候
现在每一个网站打开,
都会弹出一个「接受 Cookies」的提示。
很多人把它当成一种烦人的东西,
快速点掉,继续浏览。
但这个提示的存在,
其实是在问你一个 Lou Montulli 在 1994 年就已经在思考的问题:
谁有权利记住你?
他当时选择了一个更难的答案——
从他后来的访谈能看出,他想的是“网站可以在你同意下记住你,而不是在你不察觉中被全程追踪”
后来的人,把这个答案改掉了。
而他,几乎没有人记得他的名字。
互联网上有十亿个网站,
几乎每一个都在用他写的那几行代码,
但如果你现在去问身边的人「Lou Montulli 是谁」,
十个里面大概有九个不知道。
这件事,本身就已经说明了很多事情了。
