短网址ShortUrl的算法

我们在新浪微博上公布网址的时候。微博会自己主动判别网址。并将其转换。比如:。

为什么要这样做的,原因我想有这样几点: 


1、微博限制字数为140字一条,那么假设我们须要发一些连接上去,可是这个连接很的长。以至于将近要占用我们内容的一半篇幅。这肯定是不能被同意的。所以短网址应运而生了。 

2、短网址能够在我们项目里能够非常好的对开放级URL进行管理。

有一部分网址能够会涵盖性、暴力、广告等信息。这样我们能够通过用户的举报,全然管理这个连接将不出如今我们的应用中,应为相同的URL通过加密算法之后,得到的地址是一样的。 

3、我们能够对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点。这样有利于我们对项目的兴许工作更好的作出决策。



以下先来看看短网址映射算法的理论(网上找到的资料): 

① 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符; 

② 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作。超过30位的忽略处理。 

③ 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串; 

④ 这样一个md5字符串能够获得4个6位串。取里面的随意一个就可作为这个长url的短url地址。 

非常easy的理论,我们并不一定说得到的URL是唯一的。可是我们可以取出4组URL,这样差点儿不会出现太大的反复。 

三、  跳转原理

当我们生成短链接之后。仅仅须要在表中(数据库或者NoSql )存储原始链接与短链接的映射关系就可以。当我们訪问短链接时,仅仅须要从映射关系中找到原始链接。就可以跳转到原始链接。


Java代码  

收藏代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzswfp.html