周三下午,Chris Morgan打开自己的网站后台,发现链接被加了一堆奇怪的尾巴。
你大概见过这种场面:原本干净的https://chrismorgan.info,在某些人手里变成了https://chrismorgan.info?utm_source=twitter&utm_medium=social。Morgan的回应很直接——他在自己的网站全面禁止了未授权的查询参数。
这种做法在开发者圈子里并不常见。查询参数(query strings)是URL中问号后面的部分,原本用于传递信息。但问题在于,这些参数越来越多地被用于追踪用户来源。Morgan的态度很明确:如果你想知道用户从哪来,看Referer请求头;如果请求头里没有,那通常是有原因的。强行添加追踪参数,在他看来是对用户的滥用。
技术实现上,Morgan选择了Caddy服务器的配置方案。他原本考虑过更激进的做法——把整个页面放在https://chrismorgan.info/?这个路径下,让问号成为URL的一部分而非参数分隔符。这会让很多工具崩溃,因为大多数软件默认问号后面就是查询参数。最终他放弃了这个念头,选择了/no-query-strings作为说明页面。
Morgan坦承自己也在挑战Caddy的边界。他提到,如果涉及try_files重写,Caddy会处理不了这种极端情况。这暗示了一个现实:主流Web服务器的设计假设里,很少有人会这样对待URL结构。
这个决定的代价是明确的。过去Morgan曾用?t=…和?h=…给样式表做缓存破坏,现在这类请求会被直接拦截。他接受这种破坏,因为"本来就不应该有合法的这类请求"。
Morgan的声明结尾很有意思:"这是我的网站,我想怎么干就怎么干。你的网站也一样。"这种态度在平台垄断的时代显得颇为复古——当大多数内容创作者被困在算法和追踪体系里,有人选择用最底层的技术手段夺回控制权。
他还没用完所有想法。/?或/%3F(URL编码的问号)被留作后续用途。这场关于URL主权的实验,可能才刚刚开始。
热门跟贴