I Made the World's First "Link Compressor"
摘要
作者介绍了自制的链接压缩器 Hammer,不依赖数据库,能把完整链接编码压缩成短链接,并且生成的二维码更易扫描;这是实验性项目,通过去除冗余、选择合适字母表、Huffman 压缩等技术实现。
<p><a href="https://lobste.rs/s/ybo5gr/i_made_world_s_first_link_compressor">Comments</a></p>
查看缓存全文
缓存时间: 2026/08/14 09:33
> TL;DR:作者做了个叫 Hammer 的“链接压缩器”,不依赖数据库,把完整链接直接编码并压缩成短链接;即使网站倒闭,链接也能恢复,而且生成的二维码通常更稀疏、更容易扫描。
## 为什么常见短链接服务让人不放心
我们都用过短链接服务。你输入一个长链接,出来的是一个短链接。但要做到这一点,网站必须把完整链接存储在数据库里。谁知道他们会怎么处理这些信息,或者安全措施做得好不好。在很多情况下,仅仅通过尝试随机组合,就能出奇容易地撞见别人的链接。此外,维护那套数据库是要花钱的,所以这些服务中有很多会在跳转到目标页面之前先展示广告。而且,如果你只持有短链接,那么一旦公司倒闭,这个链接就实际上永远消失了。
其中一些问题也适用于在线二维码生成器。二维码越密集,就越难扫描。因此,在把链接变成二维码之前先缩短它是有道理的。但大多数在线服务要求你注册或付费才能使用该功能;而且即使你付费了,他们使用的格式也不对,再次让二维码变得比实际需要的更密集。这本来是一个很容易的修复,但他们根本不在乎。
所有这些让作者开始思考:有没有办法做出一个不使用数据库、在服务倒闭时链接仍可完全恢复、并且能生成真正最优二维码的短链接和二维码生成器,同时还不需要广告或注册?
简短的回答是:有的,大概吧。如果你想自己试试,就是那个叫 Hammer 的工具。请随意使用。当然,更长的回答要微妙得多。把它看作一个实验,而不是消费产品。不过,它在二维码方面确实表现不错,往往能匹敌甚至超越其他方案。
## 从“去掉冗余”开始
以《纽约时报》Wordle 的链接为例,它相当长。但大部分信息其实是多余的。
- 开头的 `HTTPS` 部分是协议,对网站来说它只能有两种之一:HTTP 或 HTTPS。如果你不指定它,浏览器会尝试两者直到成功。
- `www` 前缀如今有点过时了,很多网站被设置为没有它也能正常运行,浏览器会在必要时自动添加。
- 结尾的 `index.html` 段也是多余的。如果不存在,很多网页服务器会自动把它加回去。
仅仅通过移除这些常见的冗余部分,链接就已经被缩短了超过 50%。但细心的观众会指出,这是一种有损转换。通过移除这些元素,我们可能会破坏一些依赖它们的链接。
所以作为替代,可以折中使用“一位”来表示选项:
- 不完整写出 HTTP 或 HTTPS,而是用一个位(0 或 1)表示它是两者中的哪一个。
- 对 `www` 部分再用一个位,表示该前缀是否存在:0 表示不存在,1 表示存在。
- 对结尾的 index 后缀,建议三个常见选项:0 表示不存在,1 表示 `index.html`,2 表示 `index.php`。
还可以把这种技术应用到链接的其他部分。例如,很多网站以 `.com` 结尾,完全没有必要把这三个字母都编码进去。所有可能的顶级互联网域名是一个有限列表,所以与其逐个字母写出来,可以用 1 表示 `.com`,2 表示 `.net`,3 表示 `.org`,以此类推。而且以防万一,可以把 0 留给将来出现的新域名。
核心观点是:如果我们继续这样做,可能根本不需要数据库,因为压缩后的输出本身已经足够短了。当然,实际上你能压缩链接的程度是有限的,这与信息论和熵有很大关系。但长话短说,短链接服务使用数据库是有充分理由的——那是保持输出一致性的正确方法。作者做的事情主要是一种噱头。
## 插曲:赞助商 boot.dev
如果你想知道实际的数据库驱动系统是如何工作的,视频推荐了赞助商 boot.dev。作者强调,编程令人生畏,学习编程听起来像要做很多工作,而这正是重点——完全取决于你投入了多少努力。boot.dev 的定位是帮助学习者保持正轨,并提供投入这些工作所需的资源。
你可以亲自上手用 Python、Go、TypeScript 编写代码,或者用 SQL 构建数据库。课程由经验丰富的专家以及一些 YouTube 创作者共同打造。它的工作方式是:先得到一些理论和作业,然后通过在浏览器中编写代码或在真实 Linux 终端中键入命令来完成作业。你的工作会被检查;如果一切顺利就继续前进,如果卡住可以看示例解决方案,或在 Discord 服务器上寻求帮助。根据你的道德立场,也可以咨询他们的 AI 导师。
boot.dev 可以免费试用。高级计划会解锁互动课程,并有慷慨的 30 天无理由退款政策。使用代码 `portal runner` 在注册高级版时可获得 25% 的折扣。视频中那个二维码也是用作者制作的工具生成的。
## 编码:把链接当成一个数字
链接中那些网站独有的部分,没法靠“常见冗余”优化,所以需要拉远镜头,看两个基础概念:编码和压缩。
编码更简单。如果你仔细观察一个传统短链接,会注意到独特的部分出现在域名之后,通常前面有分隔符,比如斜杠。通常,那是后端数据库的唯一 ID;但在 Hammer 中,它包含完整输入链接的编码和压缩内容,所以称之为“载荷”。
这个空间里有 85 个被视为有效的字符,包括大小写字母、数字、括号和各种符号。这就是载荷的字母表,它的工作方式与十六进制或 base 64 等数字系统非常相似。归根结底,所有数字数据只是一个数字。与其只使用 10 个数字,或像二进制那样只使用 2 个,这里使用的是 85 个数字。
从较小的基数换成较大的基数,会减少数字的书面长度。例如,域名(斜杠之前的部分)只允许使用一组字母、数字、连字符和点,那是一个包含 38 个字符的字母表,不到载荷字母表的一半。通过把这一字符串视为 base 38 数字并转换到 base 85,已经可以节省几个位。
有些人可能遇到过不只是字母和数字的域名,那是因为网页浏览器在获取网站之前先将其转换为正确的字符集;在底层,它仍然是字母、数字和连字符。
关键点是:通过把载荷视为数字,而不是一堆符号,可以塞入多得多的数据。如果需要读取一个二进制值,可以把 base 85 数字转换成 base 2;如果需要读取十进制值,就转换成十进制;如果需要读取英文单词,可以转换成 base 26,用字母表的每个字母对应一个数字。这仍然有些简化,真正的代码链接会放在描述里。
## 针对不同片段选择合适的字母表
域名之后的部分,往往也有不同的字符集。例如,YouTube 视频 ID 使用 base 64。如果算法能识别出这一点,并为那个特定片段调整数字基数,就有可能省下几个字符。
作者的方法是把路径分成多个部分,并检测每个片段最合适的字母表:
- 如果这部分只是小写英文字母,可以用 base 26 编码。
- 如果这部分只是一个十进制数,可以用 base 10 编码。
基本想法是:为给定片段找到最适合的最小字母表,然后在该片段前面加上一个表示字母表索引的数字。这意味着过于具体是有代价的:如果有八种可能的字母表,那么每个片段都必须以一个 base 8 的数字开头;但如果创造出上百个高度专门的字母表,每个片段就必须以一个 base 100 的数字开头,这就不太理想了。
这是一个权衡。所以作者决定坚持使用八个常见类别,每个类别针对一些现实场景。
路径的分离方式也很有趣。网站链接可以由最多四个部分组成:主机、文件路径、查询参数和哈希值。每个部分都有特定用途和特定分隔字符,但单独编码它们有点浪费。可以去掉这些分隔符,只标记片段从一种类型变成另一种类型的位置。
在最好的情况下,这个系统完美工作:像这样包含许多可预测字符集的链接能很好地缩小。但更微妙的情况是:如果一堆常见字符中间有一个不常见的字符怎么办?许多博客或论坛帖子会在链接中包含帖子的标题,作为纯英文;而某些英文字母比其他字母出现得更频繁。这正是压缩的工作。
## Huffman 压缩:给常用字符更短的码
对于像链接这样小的东西,最
相似文章
@AYi_AInotes: Damn,这个开源工具直接减少了95%token消耗 这可能是今年最狠的LLM降本神器, Netflix工程师开源的Headroom 把本地Agent套在Codex,Cursor,OpenClaw,Hermes或Claude code外面…
Netflix工程师开源了Headroom工具,在本地预处理阶段自动压缩LLM输入上下文,减少高达95%的token消耗,兼容Codex、Cursor等主流AI编码工具,无需修改代码即可生效。
@yhslgg: 兄弟们,今天给你介绍一个宝藏工具,GitHub 上 21000 颗星,我自己用了之后直呼好家伙! 叫 SingleFile。 它只干一件事:把任何网页,完整打包成一个 HTML 文件,保存到本地。 图片、CSS、字体、样式,全部塞进同一个…
SingleFile 是一个免费开源的浏览器插件和CLI工具,能将任何网页完整打包成一个HTML文件,保存图片、CSS等,永久离线可用,支持自动保存、批量保存和云存储。
@GitTrend0x: AI Agent Token 压缩 60-95% 开源神器 https://github.com/chopratejas/headroom… 这就是 Headroom,6.7k star LLM Token 终极压缩神器!一句话干翻所有 …
Headroom 是一个开源工具,可将 AI Agent 读取的工具输出、日志、RAG 片段等压缩 60-95%,同时保持答案质量不变,支持可逆压缩和跨 Agent 共享记忆。
@nini_incrypto_: Headroom,把大模型 Token 成本砍掉 95% ! 1. 真·零代码更改:提供 Proxy 代理模式,任何编程语言只需改个端口就能直接无缝接入。 2. 全吞吐压缩:自动压缩工具输出、运行日志、RAG 知识库切片以及密密麻麻的聊天…
Headroom 是一个上下文压缩层,可以将 AI agent 读取的 Token 成本降低 60-95%,支持零代码更改的代理模式,且不降低模型回答质量。
@wei_wang: https://x.com/wei_wang/status/2057666488530596258
本文详细介绍了如何利用Codex AI助手的CLI、Computer Use和MCP功能,在一天内零代码开发出一个类似NYT Connections的文字游戏网站Daily Word Categories,并分享了工具栈和操作步骤。