永远只会显示 100% 的那个数字
Stats4U 里任何地方都没有回访者的数字。它缺席不是因为没人顾得上。它曾经被造出来,用真实数据跑过一次,又在 2026 年 8 月 27 日撤了回去,因为它给出的数字是 100.0% 首次访问 — 而且它会对每一个计数器、每一天、永远都这么说。
原因是散列里的一味配料。
日期是配料之一
不用 Cookie 统计访客,意味着给每位访客一个名字,服务在当天余下的时间里认得它,此后再也不认。这个名字是一段 SHA-256 散列的前十六个字节,由五样东西构成:一个秘密的盐、今天的日期、计数器的编号、IP 地址,以及浏览器的标识。
日期在里面是故意的。正是它让这个化名过期。把它拿掉,同一个人就会从一次访问带着同一个名字到下一次,没有尽头 — 那不是 Cookie 的缩小版,而是放大版,因为没人能清除它,也没人被征询。
这个查询真正返回什么
这张表目前有 17,717 行,跨三天、742 个计数器。它同时有 17,717 个不同的散列。
这是同一个数。没有一个散列出现两次。所以那个本来会填满仪表板方框的查询 — 同一个计数器、同一个散列、出现在不止一个日期 — 一行也匹配不到。首次访问:100.0%。
这不是清淡的一天,也不是小样本。这是三天的普通流量,而答案由结构固定。哪怕计数器有一百万名忠实读者,它也会显示 100%。
这不是可以修的缺陷
如果真想要这个数字,修法就是把日期从配方里拿掉。这一处改动会把每日化名变成永久标识:一枚没有 Cookie 的超级 Cookie,看不见、清不掉,由访客并非有意交出的数据推导而来。数字于是成了真的,而买它的代价,正是让这种统计站得住脚的那条性质。
还有第二个原因让它无论如何都行不通。这张表只保留两天。更早的都由夜间清理删掉,所以就算散列是稳定的,等到真要比对的时候也没有可比的东西了。
邻近的那个问题,是有答案的
「他们会回来吗」在这里无法回答。「他们会走得更深吗」可以,而且用的是已经存在的数据:每天每个计数器的访问量与访客数。
在同样这三天里,结果是每位访客 2.93、2.89 和 2.36 个页面。这是对一件真实事物的真实测量,并且会随着网站的变化而变化 — 这正是把一个数字放到页面上的意义。
为什么值得写一篇
一个写着「100% 新访客」的方框看起来并不像坏了。它看起来像一个发现。有人会为它重做一个首页。
这个失效方式很具体,也很常见:一个其实是自家存储格式副产品的数字,被当作关于世界的事实呈现出来。唯一的防线,是把查询跑一次,看看答案,然后问它有没有可能得出别的结果。这里不可能,于是这个功能就到此为止。