我们不再采集的数据
本服务以前会记录屏幕分辨率。浏览器脚本读取 window.screen,把它以 res=1920x1080 的形式一起发送,统计页面上也有一个对应的面板。
现在不记了。装这份数据的那张表今天有零行,面板显示的是它的空状态。脚本里进行读取的那一行,如今是一句说明当初写了什么的注释。
它为什么走了
屏幕分辨率是一个不错的识别信号——单独看不算什么,但和一个请求携带的其他东西凑在一起就不同了。本服务力求对访客尽可能少地保留,而一个描述其硬件的数字并没有让自己回本。那个面板从来没有人用它做过任何事。
这是这个决定里容易的一半。难的一半是让它成为事实。
在浏览器里关掉还不够
把那一行从脚本里删掉,只会让脚本的新副本不再发送。它对已经流出去的副本毫无作用,而这些副本有两类:
- 浏览器会把脚本留七天。任何一次改动之后的一个星期里,一部分访客跑的都是上一个版本。
- 有些客户页面根本不从这里加载脚本——它们嵌的是几年前取走的一份副本,粘进模板之后再没动过。
第二类没有到期日。那些页面会无限期地继续发送 res=,服务器会继续把它归档,而这项改动读起来是完成了的,却恰恰对没人盯着的那批访客是假的。
所以服务器也不再接受它了。它到达,它被忽略,什么也不写。这才是这项改动里真正立得住的那一半。
这样避开的那种错误的形状
「我们移除了采集」是关于代码的陈述。「我们不再保有这个」是关于数据的陈述。这是两个不同的陈述,而在网络上,第一个并不蕴含第二个,因为你的客户端代码跑在你控制不了的机器上,跑的是你没有挑选的版本,只要某个人的缓存或者复制粘贴还让它活着,它就一直在跑。
你在客户端关掉的东西,也要在服务器上关掉。客户端的改动阻止它被发出来。服务器的改动才让那句陈述成为真的。
旧的那些行还在,在减少,被一个专门为此写的小工具分批删除。等它做完,面板依然是空的,而那时这才终于是完整的故事,而不是故事的大部分。
广告