设为首页 - 加入收藏
广告 1000x90
您的当前位置:主页 > 网络营销 > 正文

短链接算法开发教程

来源:引流技巧 编辑:爱短链 时间:2025-08-12

一、生成背景

著名的微博和推特(Twitter)的内容限制为 140 个字符。如果你分享一个长网址,很容易超过限制。同时,长链接也占用了太多的字符空间,无法编辑。内容。此外,国内很多平台如微信、淘宝等无法互通,平台之间或多或少存在相互屏蔽。同时,还有一个更重要的因素。在我们日常的网络营销中,当营销活动展开时,很难跟踪用户和效果。基于这些多方面的因素,最终导致了今天短链接的盛行。


二、链接的长度合适

既然短链接如此重要,那么短链接生成器应该多短呢?目前,世界上有70亿人。假设每个人有一个基数的网页,那么已经有 70 亿个网页链接。目前如果按照二进制32的字符来计算短链接算法,2^{32}=4294967296232,这个数据对于70亿是远远不够的,但是远远小于64位的上限,那么一个64位就够了. 微博的短网址服务使用了一个长度为7的字符串,这个字符串可以看成是一个16进制数,所以最大可以表示{62}^7=35227=3521614606208个网址,远大于70亿的上限解决方案:深入讲解:教你如何开发在线短链接生成器!,7位字符串是目前短链接的通用标准。


三、如何转成字符串

短链接算法是如何将64位整数转换成字符串?假设我们只使用大小写字母和数字,那么可以认为是62位数字,log_{62{(2^{64}-1)@ >=10.7log62(264−1)@>=10.7,也就是最长的字符串11就够了。但是在实际应用中可以更短一些。比如新浪微博使用的长度是7。因为62^7=35227=3521614606208,这个量级远远超过了互联网上的URL总数,并且有足够的冗余空间。现在大部分的web服务器(如Apache、Nginx) ) 在 URL 中是区分大小写的,所以使用大小写字母来区分不同的 URL 是完全可以的。因此,长度为 7 或以下的字符串由大小写字母和数字组成,总共 62 个字母。


四、核心算法和原理介绍

核心算法是将十进制转换为62:

function from10to62($dec) {    $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';    $result = '';     do {        $result = $dict[$dec % 62] . $result;        $dec = intval($dec / 62);        } while ($dec != 0);    return $result; }

原理:以0ut为例:以我的文章链接为例!

短链接算法开发教程


长链接: /p/429936802

0ut短链压缩后,生成短链接:m1.fit/1p4b5

这是如何实现的?以下是生成短链接的方法:

短链接生成流程图

请求短链接,跳转到原链接的流程图:

短链接跳转流程图


五、如何存放

如何存储短网址和长网址的对应关系?以短 URL 为主键,长 URL 为值,可以存储在传统的关系型数据库中,例如 MySQL、PostgreSQL,也可以存储在任何分布式 KV 数据库中,例如 Redis、LevelDB。

如果你渴望手工设计这个存储,那是另一个话题,你需要构建一个完整的 KV 存储引擎轮。目前流行的 KV 存储引擎有 LevelDB 和 RockDB,您可以了解短链接算法的源代码。


六、短链接重定向

这是一个有趣的问题,主要看你对301和302的理解,以及你对浏览器缓存机制的理解,301是永久重定向,302是临时重定向。短链接一旦生成就不会改变,所以使用301符合http语义。但是如果使用301、谷歌、百度等搜索引擎,搜索时会直接显示真实地址,那么我们将无法统计短地址的点击次数,也无法收集用户的 Cookie、用户代理等信息。可以用来做很多有意义的大数据分析,也是短网址服务商的主要利润来源。所以应该选择302重定向。


在这里,有兴趣的朋友可以去看看m1.fit/这个短链接平台是怎么做的,可以查看新浪微博的短链接,通过抢看返回结果,可以知道新浪微博使用了302临时重定向。


七、如何保证安全问题

如果一些别有用心的黑客户在短时间内向TinyURL服务器发送大量请求,ID很快就会用完,怎么办?


一是限制单日IP请求总数,超过阈值直接拒绝服务。当然,仅仅限制IP请求的数量肯定是不够的,因为黑客户手中一般有几百万只肉鸡,IP地址池非常庞大,所以单独限制IP是没有效果的。


我们可以用一个Redis作为缓存服务器,存储的不是ID->long URL,而是long URL->ID,只存储一天内的数据,使用LRU机制将其淘汰。这样一来,如果黑客户发送大量相同的长URL,直接从缓存服务器返回短URL,他就无法消费我们的ID。当然,我们也可以设置更多的安全机制来防止被龚攻击,可以灵活使用。


根据上面的简单描述,相信大家应该对短链接生成器这样的短链接平台有了一定的了解。其实只要明白原理,我们都可以自己制作短链接生成器短网址平台,最后,如果大家有什么好的补充或者建议,可以在下方留言,谢谢!


【声明】本内容为作者原创内容短链接算法,严禁转载!


以上就是关于《短链接算法开发教程》的全部内容了,感兴趣的话可以点击右侧直接使用哦!》》在线短链接生成

相关推荐:

栏目分类

微商引流技巧网 www.yinliujiqiao.com 联系QQ:1716014443 邮箱:1716014443@qq.com

Copyright © 2019-2024 强大传媒 吉ICP备19000289号-9 网站地图 rss地图

Top