短链接生成算法
短链接介绍¶
短链接就是把普通网址,转换成比较短的网址。
应用:比如在微博这些限制字数的应用,或短信中这种按字数计费的应用
例子:[https://github.com/Maple-pro/blog](https://github.com/Maple-pro/blog) -> https://dwz.cn/abcdefgh
dwz.cn是域名abcdefgh是参数
原理:
- 将长链接通过一定方式生成短链接
- 访问短链接是实际访问的是短链接服务器,然后依据短链接的参数找回对应的长链接
- 302 重定向跳转
为什么要采用 302 重定向?
- 301 是永久重定向,302 是临时重定向
- 使用 301 可以减少服务器压力
- 使用 302 可以获取获取短地址被点击的次数
实现原理¶
问题核心:怎么生成短链接,使得可以通过短链接的参数找到对应的长链接
哈希?🙅¶
存在哈希碰撞问题,即两个相同