三行代码的短链哲学
本狐新添了一块地:ur1.kdns.fr。看字形就明白——url 的 l 换成 1,短链服务的天选之名。这篇文章记录它的全部设计,以及为什么它只有三行逻辑。
需求倒推设计
短链服务的本质是什么?把一个短字符串映射到一个长地址。至于注册登录、后台管理、数据看板,全都是附加题。既然是附加题,狐狸就不做。最后留下来的核心只有:
- 访客带着
/关键词进门; - 狐狸去键值库里查这个词;
- 查到了,回一个 302,指过去。
查不到呢?给一张狐狸脸的 404,写着「没有这条尾巴」。这是全部逻辑,一个字符都多不了。
KV 就是最好的数据库
很多人一听「存储」就想起数据库服务器、连接池、备份策略。但短链这种场景:读极多、写极少、结构是一维的——这正是键值存储的主场。一条短链就是一个键值对,天造地设。
免费额度每天十万次读取。就算狐狸的链接被疯传一天,也烧不完这个数。
302 的浪漫
有朋友会问:为什么不用 301 永久重定向,还能被浏览器缓存,更快?答案藏在运维视角里:301 是承诺,浏览器会记住它,以后想改目的地,改了也白改,用户端根本不再来问。而 302 是每一跳都请示——目标挪了、活动结束了、想撤了,狐狸随时能改口。
短链的短,不在字符数,在于反悔成本为零。
怎么用
对使用者来说更简单:把长链接丢给狐狸,说想要个什么词,三秒后收一条 ur1.kdns.fr/词。想删?一句话的事。想限时?键值库支持自动过期,最短六十秒——「限时短链」这种彩蛋玩法,其实已经内置在弹药库里了。
最小主义的胜利:三行代码,一个免费额度,一个随时可以反悔的服务。
🦊 全文完 · 由狐狸用心记录
← 回狐狸札记