查看原文
其他

短链接里的秘密都在这了!

蝈蝈 每天学点电脑知识 2023-11-22

说到短链接,可能都会觉得很陌生,那么我们先来一张截图,以下是一条短信的截图,是蝈蝈自己收到的短信:

上图中的网址就是短连接,大家可以翻翻自己的短信,是否有收到类似的。今天蝈蝈跟大家讲讲短链接一些深层次的东西,包括它的特点、作用及实现原理等。


一、特点


短链接最明显的特点就是简短,一般域名只有3-4个字符组成,前面不会带http和https,后面一般就是6位字符组成,字符包括数字和字母。


二、作用

短链接有什么作用?


1、缩短内容

大家都知道,一条短信最多发70个文字,超过70个文字,运营商会自动按两条短信来发送,同时收取两条短信的费用,对于做渠道推广的人员来说,这个成本是翻倍的,采用短链接,可以缩短短信中带的超链接的长度,从而缩短内容。


2、隐藏原始网站地址

有的网站为了隐藏自己网站的网址,就会采用短链接的形式去推广。


3、降低推广二维码的复杂度

也许大家不知道,我们经常的扫的二维码,其实是有复杂度的,生成二维码内容越多,复杂度越高,用户扫起来,就会觉得很慢,很难识别。内容少,复杂度就低,识别起来就越快。


        


以上是两个不同复杂度的二维码,很明显,第一张二维码比第二张更复杂,大家可以尝试识别扫一下,看看蝈蝈在里面写了什么东西,蝈蝈写了一段话在里面,图一因为内容有差不多上百个字,所以显得很复杂,如果是用二维码做推广,那么用短链接生成二维码就很有必要了!

                      

三、实现原理


接下来就要讲解如何实现短链接了,这一部分是本文的精华所在,内容比较丰富哦!


下面我们先来了解一下,我们访问一个短链接时,服务器发生了什么,程序上做了哪些操作。整个过程如下:


1、用户访问短链接,假如短链接为:xyz.cn/abcdef

2、用户访问到xyz.cn这服务器,上面写了程序,程序会接收到 abcdef 这一串字符串

3、程序通过查找数据库或者缓存,找到abcdef对应的原始网址

4、程序自动将网页跳转到原始网址


以上步骤,完成了从访问短链接到跳转至原始网址的整个流程。


接下来,就来说说一个完整的实现方法,包括程序设计。从上面的过程中,我们可以看到,整个流程分为两步:域名解析、程序解析字符串并跳转。


(1)域名解析


这个简单,自己去注册好一个简短的域名,一般2-4个字符串,不要太多,不然就达不到短链的效果了,注册好域名之后,需要购买一台服务器,域名备案,然后把域名解析到服务器上,并在服务器上搭好程序运行的环境,对域名对解析映射。这些太专业,就不一一图解了。


(2)程序实现


假如蝈蝈我要将自己的一样网址转为短链,假设

网址为(A):https://diannao.k3v3.com/home/download/peizhi

锻炼网站为(B):xyz.cn

那么我在xyn.cn提交生成短链请求后,程序将做一下事情:


1、将提交的网址 A 进行MD5加密,生成一串32位的字符串:8242130a4e403314d9402ae39b57f8bc,我们标记为C


2、从数据库里或者缓存里,查询C是否已经生成过对应的短链接编码。如果有,直接就取之前生成过的短链接编码,也就是前面我们说到的6-7位的字符串abcdef;如果没有,则往数据库插入一条记录,记录的内容如下:

如上图,如果通过8242130a4e403314d9402ae39b57f8bc来查询,我们可以查到有一条记录,那么我们直接把图中的链接码0002bI,组成短链接:xyz.cn/0002bI 即可。用户访问短链接时,我们可以获取到 0002bI 这一串字符,通过查找数据库,可以找到对应的原始网址,然后程序跳转到原始网址即可,就是这么简单。


3、第2步中,如果不存在md5码对应的网址,意思就是说,这个网址是第一个来生成短链接,那么我们就要插入一条记录,插入一条记录,主要需要插入3部分内容:md5_code(加密后的md5码)、code(短链code)、url(原始网址),3部分内容,一起我们有两部分了,就剩下短链code这一部分内容了,这一部分内容也就是最最关键的,这个怎么得出来的呢?


问大家一个问题,如果一张数据表中,出现两个相同的code会怎么样?答案是,当用户访问短链时,我们通过短链码会取到两个对应的原始网址,这时候,服务器就不知道应该跳转到那个网址了,这就会出错了!所以,短链code的要求是:必须唯一的,不会重复的,简短。


怎么样才能满足上述要求呢?


这时,聪明的程序员就会采用多进制的方式来实现这个编码的生成。


下面简单介绍一下多进制,我们日常生活中用的最多的是10进制,即满10进1,计算机常用的是2进制,满2进制,还有8进制、16进制、32进制、62进制等等。举个例子:

10进制中的3用2进制表示即为11;

10进制中的20用2进制表示即为10100;

10进制中的20用8进制表示即为24;


那么我们说的编码怎么来生成呢?


由于短链网站是提供给全网民用的,所以日后的量会特别大,假如有10亿条短链,我们该怎么生成这个短链码,并保证简短唯一呢?我们常用的是36进制和62进制,众所周知,我们的键盘上有0-9a-z这么多字符串,一共36个字符。36进制中,1亿就可以使用 1NJCHS 这6个字符串来表示了。62进制中,1亿就可以用 06laZE 来表示了,进制之间的换算,大家可以参考下文:

计算中二进制与十进制之间的转换,你能看懂吗?


以上多进制方式,可以帮我们生成短链码,接下来的操作就很简单了,一个新的网址提交上来,要生成短链,我们判断没有生成过短链后,直接王数据库添加一条记录,这时会得到一个自增的id,比如是100000000,这时候,我们通过62进制,将1亿转换成62进制,得到短链码 06laZE,然后组成一个完整的短链即可。用户访问短链接时,我们得到了短链码06laZE,又可以通过将62进制转成10进制,得到数字1亿,从而可以找到数据库中这条唯一的数据,然后跳转到对应的url原始网址即可。


关于短链接的秘密都讲完了,有兴趣的可以自己去搞个网址,实现一下这个生成短链接的功能,有问题也可以找蝈蝈交流。


结束语:

如果你喜欢本文,请点击右下角的在看,并分享到朋友圈。更多电脑知识、电脑技术,请关注我的微信公众号:每天学点电脑知识,一个分享干货的公益公众号!点击左下角的阅读原文,可以查看蝈蝈精选推荐电脑哦。

猜你喜欢:

【电脑知识】掌握这几个快捷键,包你电脑玩的666
电脑除了上QQ、玩游戏还能干嘛?
【办公软件】超实用的Excel技巧,不看后悔
【电脑常识】常见的电脑误区,你中了几点?
电脑技巧:教你怎么隐藏电脑上的文件让别人无法查看

每天学点电脑知识

一个分享电脑知识的公益公众号

长按,识别二维码,关注有惊喜哦~
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存