URL 编码

短码生成决定了短链接服务的核心体验。一个好的短码要足够短、全局唯一、可扩展、不容易被猜测,并且能在高并发下稳定生成。简单地对长 URL 做哈希,或者直接把自增 ID 暴露出去,都可能在规模增长后带来冲突、安全和迁移问题。

本章会从 Base62 编码讲起。数字 ID 可以被转换为由大小写字母和数字组成的短码,既比十进制更短,又适合 URL 路径。随后会讨论哈希算法、截断长度和冲突处理:哈希能让相同长 URL 生成稳定短码,但截断后会产生碰撞,必须通过重试、加盐或冲突表解决。

短码设计还要考虑可预测性。如果短码按自增 ID 直接编码,攻击者可能遍历相邻短码批量抓取链接。系统可以通过随机化、混淆、自定义别名隔离、访问权限和风控策略降低风险。安全性和可读性之间需要按业务场景权衡。

完成本章后,你应当能解释短码从哪里来、如何保证不冲突、为什么短码长度会随规模增长,以及什么时候应该使用分布式 ID、哈希或自定义别名生成方案。

本章的验收标准是:面对“10 亿条短链需要多长短码”“哈希碰撞怎么办”“短码能不能被遍历”这类问题,你能给出带约束的答案。短码不是展示层细节,它决定了系统容量、安全边界和后续数据迁移难度。

章节