短网址的原理

2021年09月15日 阅读数:2
这篇文章主要向大家介绍短网址的原理,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

 什么是短网址?数据库

将一个比较长的连接转化为一个较短的新连接,这个新连接就是短网址,并非说,短网址必定是比原网址长,彻底看原网址简不简短。服务器

 

短网址的场景spa

 一、原连接很长,影响阅读体验或者存在字数限制,能够考虑用短网址code

 二、想要隐藏真实连接,能够考虑用短网址blog

原网址:https://www.cnblogs.com/murenziwei/ip

生成的短网址:http://t.hk.uy/guFget

 (用的第三方服务器转的短网址,不晓得时效期是多久~~)it

 

短网址的原理io

须要一个服务器,生成一个短连接,重定向原连接。短连接与原连接存在一个映射关系的,访问短连接的时候,直接从数据库拿出来一个对应的原连接而且重定向。function

可是,这里有个比较难的地方,就是短连接的生成,要如何保证简短和惟一性呢?只要你有想法,能够本身实现。我这里采用的比较简单,直接搞数字递增和进制转换~~

我是从10000开始的,第一个短网址是10000、第二个短网址是10001...,由于我看只有数字没有字母有点感冒,因此就搞了个16进制。我这里就贴个JavaScript的进制代码出来,

进制转换的功能蛮容易,原理都差很少。

//10进制转换16进制
function
switch_sl(num){
var system = 16;
var shiliu=[ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' , 'A', 'B', 'C', 'D', 'E', 'F', 'G'],sl_arr=[]; do{ var fl_sl=Math.floor(num/system); var yu_sl=num%system; sl_arr.unshift(shiliu[yu_sl]); num=fl_sl; }while(num>0) return sl_arr.join(''); }

switch_sl(20000);//4E20

//16进制转换10进制
function switch_ten(num){
var sl_obj = {

A:10,

B:11,C:12,
D:13,
E:14,
F:15,
G:16
},sl_num = 0;
var sl_arr = num.split('');
var sl_len = sl_arr.length-1;
sl_arr.forEach((v,i)=>{
var tar = v;
if(sl_obj[tar]){
tar = sl_obj[tar];
}
sl_num+=Math.pow(16,(sl_len-i))*tar;
});
return sl_num; }
 
 
switch_ten('4E20');//20000