首页 > 资讯 > 正文
短网址实现原理
来源:六六短链 阅读量:
短网址生成与跳转非常简单,下面介绍短链接生成,也叫长网址转换短网址是什么,跳转流程以及短网址生成算法。
 
什么是短链接
形如http://www.link66.cn/news/index.html?a=b&c=d&e=f&g=i&time=1581292849882&sign=kjafljkgakgi8198498这样的网址就是长网址,通过长网址转换为短网址后,形如http://3z6.cn/295VQA这样的网址就是短网址。
相比长网址,短网址更简结,美观,还可以统计数据,便于在互联网中传播,常用于短信、社群、渠道推广等营销推广中。
  
生成与跳转流程

 
1、用户在浏览器输入短网址,如http://3z6.cn/295VQA
2、本地host、dns服务器依次寻找域名3z6.cn对应的ip
3、根据ip、端口号通过三次握手建立通信链接,并发起http请求
4、负载均衡接收到http请求后,转发到后端应用服务器,程序根据接收到的短网址参数295VQA从数据库中查找对应的长网址,并做302跳转,用户看到的网页最后是长网址对应的页面
这里也可以用301跳转,但301统计数据不准确,如果需要统计数据,则需要使用302跳转
 
 短网址生成算法
 1、随机数
 每次生成一个随机数,生成的时候,需要校验是否存在,如果存在则需要重新生成,这样生成重复率肯定会很高,如果数据量大了,会造成生成速度极   慢,因为如果重复需要再次生成,从而系统造成压力,所以一般不选用这个算法。
 2、自增序列算法
 短网址一般是由5-8位字符组成的字符串,假设把字符串的长度定为6,如果使用62进制,则有62的6次种可能,一共是568亿的数据。

    一张图说明10进制转换16进制的转换结果
        
1)10进制转16进制算法
十进制指由0-9组成的数据,十六进制则是指0-9,A-F组成的数字,10制怎么转成十六进制呢?
除16取余数得最低1位,然后把商继续除16得第2位,直到商等于0
65036 除 16,余数 12(C),商4064
4064 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
15除16,余数 15(F),商0,结束
得16进制为 FE0C
 
2)10进制转62进制算法
62进制是制0-9,a-z,A-Z一共62个字符组成的数字,即为62进制数,理解了10进制转16进制以后,10进制转62进制也不难了,其它都不变,就是被除数变成62了。
这种算法可逆,可以倒推对应的10进制数,但有个小缺陷这种算法容易被人猜到短网址,有一个很简的的处理办法,把62进制的顺序打乱即可。
 


短网址
短链接

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

转载注明出处:http://www.link66.cn/news/2959.html