联系支持

我们通过电子邮件回复,通常两天内。

为防止滥用,Google reCAPTCHA 会检查这次提交,其间会向 Google 传输数据。脚本只在此表单打开时才加载。

← 全部文章

一个用「什么都没有」来回答的端点

这台服务器上有一条什么都不做的路径。一条重写规则把它拦下,返回 204:没有内容,没有主体,没有工作。8 月 30 日,它被调用了 1,000 次。

8 月 30 日对 /ssl/mt/ 的调用,按计数器 调用最多的十二个计数器 站点 1 163 站点 2 89 站点 3 60 站点 4 56 站点 5 55 站点 6 42 站点 7 21 站点 8 17 站点 9 14 站点 10 13 站点 11 12 站点 12 9 一天里来自 45 个计数器、240 个地址的 1,000 次调用 没有一次来自采集器 — 这些是人,而回应是空的

它曾经是什么

这条路径叫 /ssl/mt/,其中 mt 是 mouse tracking。2015 年有个脚本记录访客的指针去了哪里,并把坐标送到这里。那个功能已经没有了。回 204 的那条规则就是它剩下的东西,它存在是为了让那些页面上的脚本得到一个有效回应,而不是控制台里的一个 404。

这些调用来自 45 个不同的计数器和 240 个不同的地址。没有一个来自采集器。它们是浏览器,在真实的页面上,运行着一个多年来一直在呼叫一个死端点的脚本,而其中一个站点就占了一千次里的 163 次。

没有人会去修它

那个脚本住在别人页面的 HTML 里。它当年被粘贴进去一次,而没有任何机制会让它被重新粘贴一遍。2006 年的那个计数器地址也是同样的情形,它至今仍承载着几乎全部的计数流量。

于是剩下两个诚实的选择。永远回 204,代价是一条重写规则,一行 PHP 都不用。或者不再回应,那就把一个安静的「无事发生」变成 45 个人浏览器里的一个错误,而对谁都没有好处。

我们继续回应。这是可能的回应里最便宜的一种,而且对拥有那个页面的人来说是看不见的。

它到底花多少

规则写在 .htaccess 里,从不进入 PHP,所以代价是每个请求一次模式匹配。一天一千次不是一个值得优化的数字;去测量它的理由不是代价,而是想知道究竟还有没有人在呼叫。

答案 — 四十五个站点,一个采集器都没有 — 才是真正改变「移除」这个词分量的那部分。关掉一个功能不会让请求停下来。它让回应停了下来。

这件事的一般化

一个被移除的功能留下两串脚印:被删掉的代码,和够不着的调用者。前者在仓库里,很容易为它感到自豪。后者只在日志里,而且还在不断到来。

在移除别人嵌进去的东西之前,有用的问题不是「这个还有人用吗」,而是「谁还会来呼叫,他会得到什么」。两半都可以测量,而只有一半在代码里。

广告