• 短网址的原理


     什么是短网址?

    将一个比较长的链接转化为一个较短的新链接,这个新链接就是短网址,并不是说,短网址一定是比原网址长,完全看原网址简不简短。

    短网址的场景

     1、原链接很长,影响阅读体验或者存在字数限制,可以考虑用短网址

     2、想要隐藏真实链接,可以考虑用短网址

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

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

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

    短网址的原理

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

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

    我是从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
     
    经过地狱般的磨练,创造出天堂的力量。流过血的手指,弹出世间的绝唱!
  • 相关阅读:
    0209利用innobackupex进行简单数据库的备份
    0208如何利用federated配置远程的数据库和本地数据相互交互
    0208MySQL5.7之Group Replication
    解决问题的方法
    0123简单配置LNMP
    0120Keeplived实现自动切换Mysql服务
    0116MySql主从复制监控
    大数据导入EXCEL
    OSI结构和TCP/IP模型
    ORA-12154 TNS无法解析指定的连接标识符
  • 原文地址:https://www.cnblogs.com/murenziwei/p/14793299.html
Copyright © 2020-2023  润新知