我不会将查询字符串添加到您的 URL

2026-05-09 1 阅读 susam
我不会将查询字符串添加到您的 URL 作者:Susam Pal,2026 年 5 月 9 日 昨晚,我的提要阅读器中出现了一篇简短的博客文章,感觉好像它直接对我说话。这是 Chris Morgan 的优秀帖子 I've baned query strings 。内容 网络上的智慧 网络上的漫游 错误特征 损坏的 URL 疑虑 结论 网络上的智慧 克里斯是一个我已经读了大约五年的网络评论的人。当他在 Hacker News 上对我收集的 CSS 规则之一留下非常详细的反馈时,我第一次偶然发现了他的评论。我绝不是一名网络开发人员。我职业生涯的大部分时间都用 C 和 C++ 进行系统编程。然而,开发网站和编写小型 HTML 工具一直是我的长期爱好。作为一名业余爱好者,我通过研究其他人的做法学到了大部分 Web 开发技能:首先是查看 2000 年代初我喜欢的网站的源代码,后来偶尔会产生实现新游戏或工具的冲动,并搜索 MDN Web 文档以了解使其工作所需的任何内容。以这种方式学习技能的一个问题是,您有时会养成流行的习惯和做法,但不一定是最佳或正确的。因此,当 Chris 对我收集的样板 CSS 规则进行评论时,这对我来说非常有价值。它帮助我提高了我的 CSS 水平。事实上,他的评论中的一些教训让我印象深刻。每当我制作一个业余爱好 HTML 项目时,我都会牢记它们:始终在链接中保留下划线,并为访问的链接保留紫色。从那时起,我一直关注克里斯关于网络相关主题的帖子和评论。他经常发布有关网络相关项目的精彩反馈。每当我遇到一个项目时,我都会确保仔细阅读它们,即使该项目不是我的。我最终总是从他的评论中学到一些有用的东西。这是 Lobsters 故事中的一个最新示例 将作者上下文添加到 RSS 。在 Web 上漫游 几个月前,我创建了一个名为 Wander Console 的新项目。它是一个小型、去中心化、自托管的 Web 控制台,可让您网站的访问者探索由独立个人网站所有者社区推荐的有趣网站和页面。例如,我的控制台在这里:susam.net/wander/。如果您单击此处的“Wander”按钮,该工具会加载 Wander 社区推荐的随机个人网页。该工具由一个实现控制台的 HTML 文件和一个 JavaScript 文件组成,网站所有者在其中定义一系列相邻控制台以及他们推荐的网页列表。如果您将这两个文件复制到您的 Web 服务器,您将立即在 Web 上拥有一个 Wander 控制台。除了基本 Web 服务器之外,您不需要任何服务器端逻辑或服务器端软件即可运行 Wander Console。您甚至可以将其托管在 Codeberg Pages 或 GitHub Pages 等受限环境中。当您单击“漫游”按钮时,控制台会连接到其他远程控制台,获取网页推荐,随机选择一个并将其加载到您的网络浏览器中。它有点像现已不复存在的 StumbleUpon,但它是完全去中心化的。它也有点像网络环,只不过社区网络不限于循环;它是一个图表,而且很灵活。目前有超过 50 个网站托管此工具。他们总共推荐了 1500 多个网页。您可以在 susam.codeberg.page/wcn/ 找到已知控制台列表及其推荐页面的最新快照。要了解有关此工具的更多信息或在您的网站上设置它,请参阅 codeberg.org/susam/wander 。如果您想知道为什么我突然将我的项目插入到上一节的这篇文章中,那是因为我最近向该项目添加了一个我自己并不完全相信的可疑功能。这个错误特征与这篇文章相关。在 Wander Console 0.4.0 版本中,我在加载网页时添加了对 via= 查询参数的支持。例如,如果您在 susam.net/wander/ 使用控制台时遇到 midnight.pub,控制台会使用以下 URL 加载该页面: https://midnight.pub/?via=https://susam.net/wander/ 这允许推荐网站的所有者通过其访问日志看到该访问源自 Wander 控制台。克里斯最近的博客文章对此类功能提出了批评。他写道: 我不喜欢人们在 URL 中添加跟踪内容。我更不喜欢人们在我的网址中添加跟踪内容。 https://chrismorgan.info/no-query-strings?ref=example.com ?我问了吗?如果我想知道,我会查看 Referer 标头;如果它不存在,也可能是有充分理由的。您通过将其添加到链接来滥用您的用户。我之前提到过,我并不完全相信添加引用查询字符串是一件好事。为什么我还是添加了它?我屈服于大众的要求。让我简要描述一下我考虑和实现该功能时的心态。瓦