短链接原理分析

参考链接: https://blog.csdn.net/weixin_37186559/article/details/84833108
为什么要用短链接?
原来的链接长度过长,发微博什么之类展示也不好看。比如下面这串:
https://www.baidu.com/s?wd=%E7%9F%AD%E9%93%BE%E6%8E%A5&rsv_spt=1&rsv_iqid=0x97863e700022047c&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=27&rsv_sug1=1&rsv_sug7=100&rsv_sug2=0&inputT=4360&rsv_sug4=4360
(╬▔皿▔)凸,谁这样分享微博谁去看~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
如何生成一个短链接?
第一步:数据库新增一张映射表如下:
CREATE TABLE `short_url_relation` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `url` VARCHAR(5000) NOT NULL,
    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    PRIMARY KEY (`id`)
)
COMMENT='短链接映射表'
COLLATE='utf8_general_ci';
 
跳转过程图解
 
短链接原理分析_第1张图片
 
 
文字过程说明
1 客户端根据短链接请求服务端
2 短链接服务器接收到"http://xxx/2tC",然后将2tC这个64进制转为10进制10086,然后用10086作为数据库主键id去找到对应链接,然后进行301重定向跳转到真实地址。。
 
 
十进制与64进制转换代码参考链接: https://blog.csdn.net/qq_15071263/article/details/74048391
在线转换进制工具链接: https://www.jisuan.mobi/pb61bNub61uzmUJX.html
 
这里标注一个肯爹的问题, 上面参考文章中<十进制与64进制转换代码参考链接> 编码的过程中也会加入'+'的符号, 如果不对+做处理, 原样返回回去, 这样就会出bug, 这样线上问题遇到了. 
处理有两个方案如下:
1 将返回的url进行 urlencode
2 对url里面的'+'替换为'%2B'
 
 
 

你可能感兴趣的:(架构服务)