如何长URL转换为短URL

转载自:https://blog.youkuaiyun.com/bntX2jSQfEHy7/article/details/80045503

短地址的好处

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

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

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

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

短网址服务提供平台

目前,国内网又很多提供短地址服务的平台,例如:
新浪:http://sina.lt/
百度:http://dwz.cn/
0x3:http://0x3.me/
MRW:http://mrw.so/

注意的是,如果使用某一个平台的短地址服务,一定要保证长期可靠的服务,不然一段时间失效了。

如何生成短地址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/RuPKzRW;
(2)短链接服务器t.cn收到请求,根据URL路径RuPKzRW获取到原始的长链接(KV缓存数据库中去查找):https://blog.youkuaiyun.com/xlgen157387/article/details/79863301;
(3)服务器返回302状态码,将响应头中的Location设置为:https://blog.youkuaiyun.com/xlgen157387/article/details/79863301;
(4)浏览器重新向https://blog.youkuaiyun.com/xlgen157387/article/details/79863301发送请求;
(5)返回响应;

如何用代码实现短地址

实现短地址的开源项目:urlshorter
项目地址:https://gitee.com/tinyframework/urlshorter
注意:urlshorter本身还是基于随机的方式生成短地址的,并不算是一个短地址发号器,因此会有性能问题和冲突的出现。而关于短地址发号器的方式目前还没有找到更好的开源项目可供参考!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值