前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >短信中的链接为什么那么短?

短信中的链接为什么那么短?

作者头像
IMWeb前端团队
发布于 2018-01-08 08:25:57
发布于 2018-01-08 08:25:57
6K0
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者:IMWeb coverguo 原文出处:IMWeb社区 未经同意,禁止转载

前言

前段时间读了一些关于短网址的文章,加上刚好收到一个含有短网址的短信。一时兴起或者说是顺其自然就写了这篇文章哈。

什么是短 URL?

短网址(Short URL),顾名思义就是比较短的 URL 网络地址, 在如今 Web 2.0 的时代,短网址十分得流行,在业界已经有许多短网址生成的服务,使我们可以用各位简短的网址来替代原来十分冗长的网址。让分享的网页链接不会因为太长而引起用户反感,影响体验,使使用者更容易分享哈。

事实上,短网址,也就是短链接在我们生活中随处可见,如微博分享、外卖订单信息、或者如上面的快递短信,短信中就含有一条短网址 http://tb.cn/vvDezXw 。)

当我们打开短网址时,网页会直接跳转到你要缩短的网址,就如打开上面的短网址,其会通过重定向的方式如 302 跳转到天猫的一个页面网址(相对短网址来说,所对应的网址长的多)

短网址的意义

使用短链接有什么好处呢?事实上,它有下面几个好处:

  • 内容需要(缩短URL满足字数限制)
  • 简介美观(用户友好)
  • 统计需要(网页流量统计、点击统计等)

无可否认的是,在微博和手机短信提醒等限制字数(一条短信最多就一两百个字)的地方来使用短网址,不得不说是一个不错的方案。一条短信是有限制字数,如果分享链接过长,就无法展示更多消息内容了。因此我们可以发现,在许多短信中,其网址都是短网址 URL

我们上面天猫的一个短网址 http://tb.cn/vvDezXw 其是通过 302 的方式,即临时重定向的方式进行跳转的。目的就是为来能够在跳转前做一些短网址打开的次数统计,这些统计数据能够成为大数据分析的数据源,从而分析用户的生活习惯兴趣爱好。

短网址的原理

那么,短网址是如何生成的呢?短网址服务是如何将那么多的长网址对应到相应的短网址呢?这里简单说明下:

短网址通常结构如下:域名/短网址id

短网址 id 其通常由 26 个大写字母 + 26 小写字母 +10 个数字 即 62 种字符组成,随机生成 6 到 7 个,然后组成对应一个 短网址 id,并存入相应的数据存储服务中。

当短网址被访问的时候,短网址的解析服务,会根据 id 查询到对应页面从而实现相应的跳转。

如何保证短网址 id 不重复

事实上,假如短网址 id 为 6 位,那就是共有 2^62 个短网址。超过这个数目的网页可能性并不大。但在生成即发放短网址的时候,需要保证能够发送不重复的短网址 id。

为了保证不冲突和重复,大多数短网址服务都会采用自增的方式来分发 id,如第一个使用这个服务的人得到的短地址是 http://xxx/0 ,第11个是 http://xxx/a 等依次生成。

对于大多数小型的短网址服务,直接使用 mysql 的自增索引就可以保证不冲突,但这种方式不太适合大型的应用。因为每次操作都需要涉及数据库的增删的资源损耗。因此对于一些大型应用,我们可以通过一些分布式 key-value 系统做短网址的分发。同时不停的自增就可以来。

如何分布式生成不重复的短网址?

如果生成短网址的服务是分布式的(用户量很大,只有一台生成一台不够用,如天猫、新浪微博),那么每个服务节点要保持同步自增,而不起冲突。是怎么做的呢?

事实上我们可以这样做。加入我们要实现有 5 台分布的短网址服务,此时我们让:

  • 服务 1,从 1 开始发放,然后每次自增 5 即 1、6、11、16...
  • 服务 2,从 2 开始发放,然后每次自增 5 即 2、7、12、17...
  • 服务 3,从 3 开始发放,然后每次自增 5 即 3、8、13、18...
  • 服务 4,从 4 开始发放,然后每次自增 5 即 4、9、14、19...
  • 服务 5,从 5 开始发放,然后每次自增 5 即 5、10、15、20...

这样每个分布的服务都能够独立工作,从而互不干扰。从而实现分布式发放。

公共短网址服务

正如前面所说,市面上有许多短网址的服务商。如下所示:

1、google 短网址服务 goo.gl

google 的 goo.gl 每次同样的网址生成的短网址都是不一样的

2、新浪 短网址服务 /sina.lt

而新浪的则是一定时间内,同样的网址生成的短网址都是一样的。且支持短网址后缀选择。

参考文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
字节二面:100Wqps短链系统,如何设计?
这段时间,在整理知识星球中面试专栏时看到这么一个字节跳动的二面真题:100Wqps短链系统,怎么设计?
码猿技术专栏
2023/05/01
4.4K1
字节二面:100Wqps短链系统,如何设计?
短网址(short URL)系统的原理及其实现
作者: 小猿大圣 https://segmentfault.com/a/1190000012088345 背景 提供一个短址服务。 你有没有发现,我们的任务中出现长 URL 就会比较麻烦?
前端教程
2018/03/05
5.3K0
短网址(short URL)系统的原理及其实现
面试必备:如何将一个长URL转换为一个短URL?
前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多方面,今天和大家一起学习研究一下!
Java后端技术
2018/08/09
7.7K0
面试必备:如何将一个长URL转换为一个短URL?
高性能短链设计
今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。
范蠡
2020/03/18
3.1K0
如何实现一个短链接服务 | 短链接生成原理
短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。
梦溪
2021/08/09
19.3K3
如何设计一个短链接系统
短链接是一种将长URL地址转换为较短、易于记忆的链接的技术。它通过使用特定的算法或服务将长链接压缩成更短的形式,以便在限制字符长度或需要更简洁的场景下使用。
柯柏技术笔记
2024/01/10
8050
如何设计一个短链接系统
字节三面:如何设计一个高性能短链系统?
所谓系统设计,就是给一个场景,让你给出对应的架构设计,需要考虑哪些问题,采用什么方案解决。很多面试官喜欢出这么一道题来考验你的知识广度和逻辑思考能力。
飞天小牛肉
2023/09/19
3.8K0
字节三面:如何设计一个高性能短链系统?
阿里二面:如何设计与实现短URL服务?
https://juejin.im/post/6844903873950269454
java进阶架构师
2020/11/23
5660
阿里二面:如何设计与实现短URL服务?
最近学到的「短链接」知识
最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。
Java3y
2019/10/15
1.7K0
最近学到的「短链接」知识
URL短网址生成算法原理
短网址(Short URL),是在形式上比较短的网址,通过映射关系跳转到原有的长网址。
阳光岛主
2019/02/18
4.6K2
挖洞案例-短链接安全之越权
短网址服务可以提供一个非常短小的URL以代替原来的可能较长的URL,将长的URL地址缩短。用户访问缩短后的URL时,通常将会重定向到原来的URL。短网址服务主要起源于一些具有字数限制的微博客服务,但是现在广泛用于短信、邮件等。
用户1467662
2019/11/19
1.6K0
挖洞案例-短链接安全之越权
短URL服务的设计以及实现
想必经常收到这样的短信。短信中的链接一般都是短链接,类似于下图这样,这就是短地址,而
CBeann
2023/12/25
4320
短URL服务的设计以及实现
短链接的设计与实现
短链接的实现在生活中比较常见,比如我们接受到的广告短信,短信会包含他们的活动链接。
梁规晓
2020/11/05
2.1K0
短链接的设计与实现
1. 如何设计一个短链接系统
  a. 微博推文, 每次限制只能有140个字,如果连接字符很多, 那么可编辑的文字就少了
用户7798898
2020/09/27
2.1K0
1. 如何设计一个短链接系统
东半球最接地气的短链接系统设计
今天下午,烟哥和同事在厕所里排队等坑的时候(人多坑少)。想象一下一个场景,我正在一边排队,一边拿着手机撩妹。前面一个同事,拿着手机短信转过头来和我聊天。
Java3y
2019/11/12
6570
东半球最接地气的短链接系统设计
短url服务的设计以及实现
最理想的情况是: 我们用一种算法,对每一个长URL,唯一的转换成短URL.还能保持反向转换的能力.
呼延十
2019/06/26
1.2K0
短url服务的设计以及实现
剖析短链接工具开发原理与源码讲解
微博和Twitter都有140字数的限制,如果分享一个长网址,很容易就超出限制,同时长链接也占用了太多的字符空间,无法编辑更多的内容。另外,如国内微信、淘宝等等很多平台都是无法互通,平台之间都或多或少存在相互屏蔽的行为。同时,还有一个比较重要的因素,在我们日常网络营销中,当营销活动推出后,却很难去追踪用户与效果,基于这些种种的因素,才最终导致了如今短链接的盛行。
用户9229846
2021/11/29
1.2K1
剖析短链接工具开发原理与源码讲解
搭建短链接平台详细分析及具体代码实现
短链接,又称缩略网址服务、缩址、短址、短网址、缩略网址、网址缩短、缩短网址、URL缩短等,指的是一种互联网上的技术与服务。此服务可以提供短URL以代替原来可能较长的URL,将长的URL地址缩短。
Mintimate
2021/08/12
3.8K0
搭建短链接平台详细分析及具体代码实现
用Redis实现长链转短链
在生活中有很多场景需要把长链接转化为短连接,比如微博限制字数为140字一条,那么如果我们需要发一些链接上去,但是这个链接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短链接应运而生了。
Lvshen
2022/05/05
8290
用Redis实现长链转短链
小知识科普:随处可见的短ID和短网址
早上收到快递小哥的短信说快递被放在了A地的丰巢快递柜,然鹅这个快递柜我并不知道在哪里。
帅地
2019/11/22
1.7K0
小知识科普:随处可见的短ID和短网址
相关推荐
字节二面:100Wqps短链系统,如何设计?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档