卓象程序员 | 哈尔滨IT培训 | 品质教育,口碑传承 | 为做出口口相传,好口碑的教育品牌而奋斗!

卓象程序员让每一位学员高薪就业 联系我们13101507057

加微信,了解详情
您所在的位置:首页 > 文章 >卓象技术

「卓象程序员」长链接转短链接
时间: 2019-08-24 10:10:16     来源: 卓象IT实训基地【原创】


一、前言


短链接:顾名思义,就是将长链接缩短到一个很短的链接,用户访问这个短链接可以重定向到原本的长链接。这样可以方便访问,常用于有字数限制的微博、二维码等等场景。



二、短链接的使用场景

1、微博

我们在发微博的时候如果带上了一个链接,那么微博会自动判别是不是链接,并将其转换,例如:https://t.cn/RuPKzRW。那么微博为什么要这样做呢?

这是因为微博的限制字数为140字一条,那么如果我们需要发一些链接上去,但是这个链接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是户体验很差的,所以微博将这个长网址转换成了短网址展示在你发的微博上,往下看:

(1)首先,我先发一条微博带有一个URL地址:

(2)然后,看他转换之后显示的效果如下?


(3)查看对应页面元素的HTML源码如下:

(4)可以看出:http://zxkj.hhphp.top 被转换为:http://t.cn/AiQX6l9q,此时你访问http://t.cn/AiQX6l9q是可以定位到http://zxkj.hhphp.top,也就是实现了转换。

2、短网址二维码

现在是移动互联网的时代,很多的地址访问人们都是用二维码来实现,如果一个网址很长,那么他对应的二维码也会很大很密,所以这时结合上长链接转短连接问题就解决了.


(1)商城里每一个商品的连接转换成短连接再变为二维码,用户扫起来更加方便.

(2)商城里的商品链接可以存储和这个商品有关的所有的信息,用户扫一扫不但能查询价格,还能查询原产地,保质期等等信息...

三、短地址的好处

除了上述场景中,我们将长地址转换为短地址的使用场景的优点(压缩URL长度)之外,短地址还具有很多实际场景中的优点,例如:

(1)节省网址长度,便于社交化传播,一个是让URL更短小,传播更方便,尤其是URL中有中文和特殊字符,短网址解决很长的URL难以记忆不利于传播的问题;

(2)短网址在我们项目里可以很好的对开放以及对URL进行管理。有一部分网址可以会涵盖性、暴力、广告等信息,这样我们可以通过用户的举报,完全管理这个连接将不出现在我们的应用中,对同样的URL通过加密算法之后,得到的地址是一样的;

(3)方便后台跟踪点击量、地域分布等用户统计。我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策;

(4)规避关键词、域名屏蔽手段、隐藏真实地址,适合做付费推广链接;

(5)当你看到一个淘宝的宝贝连接后面是200个“e7x8bv7c8bisdj”这样的字符的时候,你还会觉得舒服吗。更何况微博字数只有140字,微博或短信里,字数不够,你用条短网址就能帮你腾出很多空间来;

四、短链接服务提供平台

目前,国内网又很多提供短地址服务的平台,例如:

 

新浪:http://sina.lt/

百度:http://dwz.cn/

0x3:http://0x3.me/

MRW:http://mrw.so/

 

等等还有很多,这个可以搜索一下就会有很多!但是一个注意的是,如果使用某一个平台的短地址服务,一定要保证长期可靠的服务,不然一段时间失效了,我们以前已经转换的URL就完了!



五、生成短地址URL的原理

生成算法设计要点如下:

(1)利用放号器,初始值为0,对于每一个短链接生成请求,都递增放号器的值,再将此值转换为62进制(a-zA-Z0-9),比如第一次请求时放号器的值为0,对应62进制为a,第二次请求时放号器的值为1,对应62进制为b,第10001次请求时放号器的值为10000,对应62进制为sBc。

(2)将短链接服务器域名与放号器的62进制值进行字符串连接,即为短链接的URL,比如:t.cn/sBc。

(3)重定向过程:生成短链接之后,需要存储短链接到长链接的映射关系,即sBc -> URL,浏览器访问短链接服务器时,根据URL Path取到原始的链接,然后进行302重定向。映射关系可使用K-V存储,比如Redis或Memcache。

六、生成短地址之后如何跳转?

对于该部分的讨论,我们可以认为他是整个交互的流程,具体的流程细节如下:

(1)用户访问短链接:http://t.cn/AiQX6l9q;

(2)短链接服务器t.cn收到请求,根据URL路径AiQX6l9q获取到原始的长链接(KV缓存数据库中去查找):http://zxkj.hhphp.top;

(3)服务器返回302状态码,将响应头中的Location设置为:http://zxkj.hhphp.top;

(4)浏览器重新向http://zxkj.hhphp.top使用301发送请求;

(5)返回响应;


每日分享技术干货~

报名卓象免费训练营课程

学习最新热门IT技术

找一份自己满意的高薪工作

15天免费学习!!

卓象程序员

★ 零基础,随时体验

★ 免费试听,满意后再报名

★ 小班授课,学习氛围浓厚

★ 口碑相传,80%学员来自口碑推荐

★ 教学严管,闯关式学习保障学习效果

★ 公司地点,哈尔滨市东直路123号7楼