首页 / / 短链接生成原理介绍

普通短链

活码系统

随机短链

跳转微信小程序

更多

短链接生成原理介绍

更新时间:2024-4-20 17:57:34 作者:爱短链

首先短链接有几个优点,相信大家都了解:1、内容需要;2、用户友好;3、便于管理。那么短链接是怎么实现的呢,其实大概有三个步骤,下面一起来看看爱短链小编带来的详细介绍吧。

步骤介绍:

1、定义一个URL映射算法,可以将长的URL映射成短字符串;

2、使用一个存储(数据库?NoSQL?)来存储完成的映射;

3、实现自己的URL映射算法;

这里面的第三个步骤相对来说比较难,如何将一个比较长的链接生成一个很短的短链接呢,下面有三个办法:

第一个就是普通实现方法

相信大家以前学习过十进制和二进制的互相转换,或者十进制和十六进制的互相转换,那么为了更短,我们可以使用62进制,对于一个数字ID进行转码,转换成一个短字符串。

这种做法的缺点是没有办法保证所有链接都是固定的位数的长度,而且在高并发的情况下,如何保证能够快速分发是个问题。

具体实现方法:

文艺实现

算法描述:使用6个字符来表示短链接,我们使用ASCII字符中的'a'-'z','0'-'5',共计32个字符作为集合。每个字符有32种状态,六个字符就可以表示32^6(1073741824),那么如何得到这六个字符,描述如下:

对传入的长URL进行Md5,得到一个32位的字符串,这个字符串变化很多,是16的32次方,基本上可以保证唯一性。将这32位分成四份,每一份8个字符,这时机率变成了16的8次方,是4294967296,这个数字碰撞的机率也比较小啦,关键是后面的一次处理。我们将这个8位的字符认为是16进制整数,也就是1*('0x'.$val),然后取0-30位,每5个一组,算出他的整数值,然后映射到我们准备的32个字符中,最后就能够得到一个6位的短链接地址。

PHP实现如下:

二逼实现

下面这个函数使用了纯随机的方式来生成一个短链接,虽然我们可以通过查询操作来确保不重复使用短链接,可是... 这样真的靠谱吗~~

Technorati 标签: 短链接,Short Url,映射,哈希

参考资料:

1、微博短地址原理解析

2、微博短域名原理及作用

3、Yours.org

4、Free PHP URL Shorten script that kicks ass

5、PHP Short Url Algorithm Implementation

6、Implement your own short URL

7、短网址算法初步汇总

8、Short Url 实现方式

以上就是爱短链小编为大家带来的关于短链接生成的原理介绍,希望对你有所帮助,后续如果还有关于短链接、微信外链、活码等一系列的问题的话可以关注爱短链(www.aifabu.com)平台查阅哦。

爱短链平台各工具使用方法及功能汇总
短链接 活码
微信外链 抖音卡片

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

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

顾问1V1

超长试用

专属优惠

私域SOP