核心流程:长 URL 提交 → 生成短码 → 存映射 → 访问短码时 301/302 跳转。短码生成是主要考点:1)自增 ID + Base62(0-9a-zA-Z)编码——6 位可表达 568 亿个,简单且天然唯一,ID 可用数据库自增或号段模式发号;2)哈希(MD5 截断前 6~8 位)——无发号依赖但要处理碰撞(查库冲突则加盐重哈希);3)同长 URL 是否复用同一短码取决于产品(复用省空间但泄漏统计口径)。

关键决策点:301 vs 302——301 被浏览器永久缓存,服务端流量小但失去统计与后续改目标的能力,短链服务通常选 302;存储上 KV(Redis/NoSQL)即可,读写比极高,热短码加本地缓存;容量估算套路(如 1 亿新链/月 × 保留 5 年 × 每条约 500B)体现量级感。扩展点:短码有效期与过期清理、防爬限流、自定义短码(防占用与敏感词)、点击统计异步落库。追问方向:分库分表按短码哈希还是时间、热点短码(明星发微博)的读放大处理、如何防止短链被用于钓鱼跳转(安全审核层)。

(约 400 字)