前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小知识科普:随处可见的短ID和短网址

小知识科普:随处可见的短ID和短网址

作者头像
帅地
发布于 2019-11-22 07:56:12
发布于 2019-11-22 07:56:12
1.7K0
举报
文章被收录于专栏:苦逼的码农苦逼的码农
来源:后端技术指南针 作者:后端技术指南针

生活常见场景

生活场景一

早上收到快递小哥的短信说快递被放在了A地的丰巢快递柜,然鹅这个快递柜我并不知道在哪里。

于是想到用快递单号查询一下物流信息,但是这个快递单号是长达14位的十进制数字。

当时就很纳闷,为什么要用14位长度的10进制数字来表示单号?站在快递公司的角度我做了如下推测:

1、可以从单号快速知道物品发货时间?(貌似没有看到时间线索,除非做了编码,但是应该不会…) 2、可以从单号获得起止地点?(可能是内部地点编码 反正消费者不关心) 3、可以从单号获得相关人员信息?(可能是内部人员编码 反正消费者不关心)

到这里,我暂时没有找到为什么必须使用这么长串数字的理由,于是搜狗一下(不是百度一下),看到这个问题:

在这里插入图片描述 确实有一样疑问的人,但是对于这个回答算是同意一半吧,核心意思是为了去重,不过做法有些因噎废食了。

生活场景二:

双11临近手机上的推广短信也越来越多,随便看几个:

在这里插入图片描述

在这里插入图片描述 可以看到上面的两条典型的短信,其中的显示的网址都很短,和前些年的连接不一样,因为前些年的链接大概和一根挂面那么长。

好奇地点开了其中一条淘宝的短信,然后跳转了:

在这里插入图片描述 可以看出来短ID短网址在生活中是普遍出现的,作用也非常明显,比如微博这种有140字限制的,粘贴一个链接可能花掉了100个字; 对于推广商发送短信按照字数计费,同样的长网址进行相同数量的推广,产生的通信费可能是短网址的数倍。

综上可知,短网址和短ID相当于间接提高了带宽的利用率、节约成本

短网址和短ID的原理

1、六十二进制表示法

前面提到的快递单号和短信链接就引出了今天要说的短网址和短ID,顾名思义短网址就是非常短的网址,比如http://t.cn/EXyAO7T,其中核心的部分EXyAO7T只有7位长度。

其实这里的7位长度是使用 62 进制来表示的,就是常用的 0-9、a-z、A-Z,也就是 10 个数字 + 26 个小写 + 26 个大写 = 62 位。

那么7位长度62进制可以表示多大范围呢?

62^7 = 3,521,614,606,208(合计3.5万亿),这样的话只要算法得当,短网址冲突的概率就很低了。

至于短网址的长度可以根据自己需要来调整,即使6位长度62^6也能达到568亿的范围,所以回答了上面快递单号的问题。

如果有弱加密需求,不想让人明确知道转换前是什么,使用方可以按照自己的需求来调整62进制各位代表的含义,比如A站点将字母c表示32、B站点将字母c表示60,就相当于密码本了。

2、更大进制表示法

看到这里你或许会说,使用108进制(如果有的话)岂不是网址更短,是的,但是108个进制就可能会出现大量的不常用字符 比如 # % & * 这些,通用性和记忆性就变差了,62进制是个权衡折中,已经足够无需过设计。

关于跳链

当打开淘宝的短网址时页面出现了跳转,出现了新的页面,浏览器显示的新网址并不是你打开的短网址了,也就是发生了301/302跳转。

http中返回码301是永久重定向,也就是短网址和长网址是一一对应的,http返回码302表示是临时重定向,也就是可能过段时间短网址就失效了。

由于数据统计和活动临时性等特性,302短网址应用更多,但是302临时短网址对于主站点的SEO有一定的影响,过分使用也会降低站点排名。

所以短网址在平时站点搞活动或者分享页时应用比较多,微博、淘宝、微信基本上都是短网址。

短连接的安全性

虽然短链接便于传输和记忆,但是位数少并且无明确站点信息,容易出现猜测攻击和钓鱼攻击,比如一些黑基站发送短信,如果是短链接点开可能就跳转到非可信任网址,因此不建议使用短链接发送传输核心敏感数据,即使传输也要做好权限鉴别,加强安全处理,软件工程没有银弹,还是要辩证看待。

结语

本文并没有对如何保证短链接和短ID唯一性、生成算法、鉴权等进行详细介绍,仅做抛砖引玉,现实中有很多短链接服务商包括百度、微博、谷歌等,感兴趣的可以进行查阅。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅地玩编程 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
短网址(short URL)系统的原理及其实现
作者: 小猿大圣 https://segmentfault.com/a/1190000012088345 背景 提供一个短址服务。 你有没有发现,我们的任务中出现长 URL 就会比较麻烦?
前端教程
2018/03/05
5.3K0
短网址(short URL)系统的原理及其实现
短信中的链接为什么那么短?
短网址服务是用于缩短网址,方便用户记忆和访问的一种服务。它通常通过将长网址与短网址服务提供的接口进行匹配,从而实现缩短网址的目的。短网址服务可以降低用户输入长网址时的错误率,提高用户体验,同时也可以减轻服务器的压力,提高网站的访问速度。目前市面上有许多短网址服务,如google的goo.gl、新浪的sina.lt等。
IMWeb前端团队
2018/01/08
6K2
短信中的链接为什么那么短?
短网址系统设计
短网址系统负责将某个长网址缩短为一个很短的网址,用户通过访问这个短网址可以重定向到原本的长网址。
大忽悠爱学习
2023/11/02
5400
短网址系统设计
面试必备:如何将一个长URL转换为一个短URL?
前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多方面,今天和大家一起学习研究一下!
Java后端技术
2018/08/09
7.7K0
面试必备:如何将一个长URL转换为一个短URL?
剖析短链接工具开发原理与源码讲解
微博和Twitter都有140字数的限制,如果分享一个长网址,很容易就超出限制,同时长链接也占用了太多的字符空间,无法编辑更多的内容。另外,如国内微信、淘宝等等很多平台都是无法互通,平台之间都或多或少存在相互屏蔽的行为。同时,还有一个比较重要的因素,在我们日常网络营销中,当营销活动推出后,却很难去追踪用户与效果,基于这些种种的因素,才最终导致了如今短链接的盛行。
用户9229846
2021/11/29
1.2K1
剖析短链接工具开发原理与源码讲解
短URL服务的设计以及实现
想必经常收到这样的短信。短信中的链接一般都是短链接,类似于下图这样,这就是短地址,而
CBeann
2023/12/25
4400
短URL服务的设计以及实现
短网址安全浅谈
何谓短网址(Short URL)?顾名思义,就是形式上比较短的网址,当前主要是借助短网址来替代原先冗长的网址,方便传输和分享。短网址服务也就是将长网址转换为短网址的服务,这种服务在方便了广大网民的同时也带来了一定的安全风险。
腾讯安全应急响应中心
2018/10/16
1.9K0
短网址安全浅谈
如何设计一个短链接系统
短链接是一种将长URL地址转换为较短、易于记忆的链接的技术。它通过使用特定的算法或服务将长链接压缩成更短的形式,以便在限制字符长度或需要更简洁的场景下使用。
柯柏技术笔记
2024/01/10
8600
如何设计一个短链接系统
02 奇妙的Python库之【pyshorteners(短网址)】
短链,顾名思义,就是将原始长链缩短,以此达到更易于传播的效果。短链本身的原理其实很简单,即生成一个全局唯一ID,保存这个短链和原始链接的映射关系,一般通过302重定向的方式从短链跳转到原始链接。说到唯一ID我们一般可能会想到通过雪花算法、哈希算法去生成,但这样做要么不够短,要么需要解决哈希碰撞的问题,因此,我们这里不妨使用自增ID,然后转成由26英文字母大小写和10个阿拉伯数字构成的62进制数字,粗略计算一下,仅仅6位长度即可表示近6百亿,7位长度可达数万亿,可以说是绰绰有余了。
测试开发囤货
2021/09/08
1.6K0
如何设计短网址服务
本文虽然是作者几年前的文章,但并不过时!文中介绍了如何设计短网址服务,简洁地指出了该服务要注意的问题和解决方案。下面是正文:
HelloGitHub
2021/05/14
1.2K0
如何设计短网址服务
URL短网址生成算法原理
短网址(Short URL),是在形式上比较短的网址,通过映射关系跳转到原有的长网址。
阳光岛主
2019/02/18
4.6K2
字节二面:100Wqps短链系统,如何设计?
这段时间,在整理知识星球中面试专栏时看到这么一个字节跳动的二面真题:100Wqps短链系统,怎么设计?
码猿技术专栏
2023/05/01
4.5K1
字节二面:100Wqps短链系统,如何设计?
设计一个系统将长链接地址转为短链接地址
最近遇到一个面试题,问请你设计一个系统将长链接转为短链接。起初回答的不是很好,之后通过自己思考和查阅资料将这块的内容进行整理。
翎野君
2023/05/12
1.1K0
设计一个系统将长链接地址转为短链接地址
高性能短链设计
今天,我们来谈谈如何设计一个高性能短链系统,短链系统设计看起来很简单,但每个点都能展开很多知识点,也是在面试中非常适合考察侯选人的一道设计题,本文将会结合我们生产上稳定运行两年之久的高性能短链系统给大家简单介绍下设计这套系统所涉及的一些思路,希望对大家能有一些帮助。
范蠡
2020/03/18
3.1K0
短网址系统
在微博里发布一条带网址的信息,微博会把里面的网址转化成一个更短的网址。只要访问这个短网址,就相当于访问原始的网址。
Michael阿明
2021/02/20
4.1K0
短网址系统
最近学到的「短链接」知识
最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。
Java3y
2019/10/15
1.7K0
最近学到的「短链接」知识
如何设计一个短网址系统
网址短链接就是一些长链接的别名,比如 bit.ly, goo.gl, qlink.me,输入这些链接会跳转到对应的长链接。
somenzz
2021/03/24
1.8K0
如何实现一个短链接服务 | 短链接生成原理
短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。
梦溪
2021/08/09
19.4K3
网址太长了难看?生成个短网址吧
所谓短网址就是通过一定的算法把很长的网址得到一个很短的网址,点击这个短网址后会跳转到之前的长网址。
苏生不惑
2020/04/27
13.7K2
手把手教你造轮子:这个价值100万的短网址微服务,我送给你
网上已经有产品,用着还不错。可是,作为程序员,从零开始造轮子,开发一个属于自己的短网址服务器,这想法amazing!
程序员小助手
2020/04/08
5960
相关推荐
短网址(short URL)系统的原理及其实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档