j9国际官网-j9九游会真人游戏第一 / / 较长url简短化,在线生成短链接系统

普通短链

活码系统

随机短链

跳转微信小程序

更多

较长url简短化,在线生成短链接系统-j9国际官网

更新时间:2024-7-30 02:37:20 作者:爱短链

短链接系统可以将长 url url 转换为短 url 字符串。短链接的优点是易于传播。适合在一些对字符串长度有要求的场景下使用,比如短信、微博等,比如

在线生成短链接

设计要求

根据面试要求,需要设计短链接系统,链接长度尽量短,每天产生1亿个网址,服务10年。


首先在线生成短链接,让我们看看短链接的工作原理。

它是如何工作的?

当我在 chrome 上输入短链接时会发生什么?

打开开发者工具,可以看到服务器收到请求后,会将短链接转换为长链接,然后返回浏览器,进行301重定向,请求长链接地址。

另一个问题,如何将长链接转换为短链接?

可以使用一些加密算法吗?显然不行,因为加密后字符串会变长。


哈希算法:

其实我们可以使用哈希算法和哈希表来实现,如下

长链接经过哈希算法后,会生成一个固定长度的哈希值key,即短链接的值,并存入哈希表中。

使用短链接查询长链接时,只需要查询哈希表即可。

以上是常用的哈希算法,至少8位。

我们需要多少个短链接?按照以上要求,每天产生1亿个短链接,运行10年,1亿*365*10=3650亿。

短链接的字符在[0-9,a-z,a-z]之间在线生成短链接,共有62个不同的字符,可以计算出以下数据。



可见,要满足系统要求,短链路的长度至少要7比特。实际上,许多短链接系统也是 7 位长。有兴趣的同学也可以看看米勒定律7±2。

上面的crc32算法至少有8位。但是我们可以截断前 7 位并丢弃最后一个。但是,可能存在哈希冲突的问题。我们可以递归地为长链接拼接一个值,直到不再发现冲突。当然,也可以使用其他的哈希冲突解决方法。


base 62 转换

这是另一种常用的方法,base 62字符由大写字母a-z、小写字母a-z和数字0-9组成,共62位,如下

与 base 64 相比,base 62 仅少了 2 个字符 和 /。大家可以想想为什么我们这里不用base 64。

base 62 与上述哈希算法不同。哈希算法根据长链接计算哈希值,然后保存在哈希表中。而base 62需要为每个长链接生成一个唯一的数字id,如下

那么如何计算 shorturl?因为id是唯一的十进制数,我们只需要把它转成十六进制,就和二进制转十进制一样。

如果有id为11157,则转换过程如下

最终短链接的值为。


总结

本文介绍了两种实现短链接的方法在线生成短链接,分别是hash算法和base 62。

hash算法的特点是具有固定的短链接长度,不需要生成唯一id,可能会发生hash冲突。

base 62转换的特点是长度不固定,取决于id的大小,1000转换后为g8短链接系统可以把比较长的url网址转换成简短的网址字符串,1000亿转换后为1l9zo9o。还需要生成没有哈希冲突问题的唯一数字 id。


以上就是关于《较长url简短化,在线生成短链接系统》的全部内容了,感兴趣的话可以点击右侧直接使用哦!》》j9国际官网-j9九游会真人游戏第一

© 爱短链 2019|南京角浪网络科技有限公司j9国际官网的版权所有|简单易用的在线生成短链接工具

j9国际官网
联系客服
微信客服
扫码添加服务顾问微信
四重好礼免费领取

顾问1v1

超长试用

专属优惠

私域sop

网站地图