1、哈希或唯一 ID 生成:为每个长 URL 分配一个唯一的标识符。
2、编码:将该唯一 ID 编码成较短的字符串(如 Base64、Base62)。
3、存储映射关系:将短链接和原始长链接进行映射,通常用数据库或缓存(如 Redis)保存。
4、重定向:用户访问短链接时,查出对应的长链接并进行跳转。
✅ 示例代码:使用 Go 实现简易短链接服务
go
package main
import (
encoding/base64
fmt
net/http
sync
)
var (
urlStore = make(map[string]string)
mu sync.Mutex
id int
)
// 将数字ID转换为短字符串(Base62)
func encode(id int) string {
const alphabet = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
var short string
for id 0 {
id
short = string(alphabet[id%62]) + short
id /= 62
}
return short
}