专业的短链接生成工具
链接域名
短网址有效期
短链接算法开发教程
更新时间:2025-5-2 05:42:14 作者:爱短链
一、生成背景
著名的微博和推特(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。当然,我们也可以设置更多的安全机制来防止被龚攻击,可以灵活使用。
根据上面的简单描述,相信大家应该对短链接生成器这样的短链接平台有了一定的了解。其实只要明白原理,我们都可以自己制作短链接生成器短网址平台,最后,如果大家有什么好的补充或者建议,可以在下方留言,谢谢!
【声明】本内容为作者原创内容短链接算法,严禁转载!