首先,短链接有几个好处,相信大家都知道:1。内容需求;2.方便用户;3.易于管理。
那么短链接是如何实现的呢?事实上,大约有三个步骤:
1.定义一个URL映射算法,可以将长URL映射成短字符串;
2.使用存储(数据库?NoSQL?)来存储完成的映射;
3.实现自己的URL映射算法;
第三步相对困难。如何从一个长链接生成一个短链接?这里有三种方法:
首先是常见的实现方法。
我相信你以前学过十进制和二进制,或者十进制和十六进制之间的转换。然后,为了使它更短,我们可以使用62-ary来转码一个数字ID,并将其转换为一个短字符串。
这种方式的缺点是没有办法保证所有的链接都是固定位数长度,在高并发的情况下,如何保证能够快速分发是个问题。
具体实施方法:
文学实现
算法描述:6个字符用于表示短链接。我们在ASCII字符中使用' a'-'z ',' 0'-'5 ',共32个字符为一组。每个字符有32种状态,6个字符可以代表32 ^ 6(1073741824)。那么如何得到这六个字符呢,描述如下:
Md5传入的长URL以获得32位字符串。这个字符串变化很大,是16的32次方,基本保证了唯一性。把这32位分成4份,每份8个字符。这时候概率就变成了16的8次方,也就是4294967296。这个号码碰撞的概率也比较小。关键是后续的处理。我们把这个8位的字符想象成一个十六进制的整数,也就是1 *(0x)。$val),然后以5为一组取0-30位,算出他的整数值,再映射到我们准备的32个字符,最后就可以得到一个6位的短链接地址。
PHP实现如下:
强迫实现
下面的函数使用一种完全随机的方式来生成一个短链接。虽然我们可以通过查询操作确保短链接不被重用,但是...这样真的靠谱吗~ ~
Technorati标签:短链接、短Url、映射、散列
参考资料:
1.微博地址原则分析
2.微博短域名的原理和作用。
3、Yours.org
4、免费的PHP URL缩短脚本
5、PHP短Url算法的实现
6、实现你自己的短网址
7.短URL算法的初步总结
8.短Url的实现
本文来自热恋少女投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/507177.html