微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

我们都用过这么一个功能,一个非常长的网址,可以被压缩称一个非常短的链接,这背后用到的是什么样的技术呢?背后又隐藏着怎么样的算法与数据结构?我们如何能够快速的进行实现 。
短网址技术其实非常的简单,我们可以将这个技术分成两部分,第一部分是长网址的压缩 , 也就是如何把长连接地址压缩成短连接地址,第二部分是如何把访问短链接地址的时候又重新变成访问长链接地址 。
哈希算法

微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

文章插图
最常见的短网址实现方案便是使用哈希算法,相信学过算法与数据结构的同学对这个算法并不陌生 , 哈希算法可以把非常长的文本甚至文件映射成一个字符串或者数字,这种算法并不陌生,我们常见的文件md5算法也属于哈希算法中的一种 。
但是md5比较长,通常我们会使用murmurhash来进行哈希,这是一种比较轻量级的哈希算法 。我们将哈希后的值跟长连接还有失效时间一起保存在数据库里面,后面通过哈希后的值,就能够找到对应的原始长链接地址了 。
【微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难】但是,这里还存在2个细节问题,首先是哈希地址冲突了怎么办?常见的哈希冲突解决方法,便是从后面一直找,找到一个空的插槽放进去,如果学过算法与数据结构,便知道这种算法比较不稳定,并且实现起来也麻烦 。我们有一个更简单的做法,就是在原始链接后面再拼上一个自定义的字符串进行哈希 。
微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

文章插图
另外一个问题,便是murmurhash的哈希结果是一个32位的数字 , 只有0到9组成,如果似乎几千万的一个数字,也比较长,那么我们可以怎么办呢?我们可以把这个简单十进制数字转成更高的进制,把字母a到z与A到Z都用上,就可以把字符串压到非常短了 。
重定向那么如何访问一个短地址的时候变成一个长地址呢?同理也是非常的简单,运用到的便是网页重定向功能 。
微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

文章插图
用户先使用短地址到后台查询 , 后台到数据库中进行查询后 , 便校验数据的合法性 , 例如数据过期之类的,紧接着返回长地址与重定向错误码,浏览器接受到错误地址后便开始重定向到真实地址 。
总结看,其实只要非常简单的算法跟存储,我们变成制作一个短地址服务器,如果你有兴趣,可以关注我 , 后面我们会用简单的代码进行实现 。欢迎大家关注我 , 共同学习,共同进步 。大家的支持是我继续唠嗑的动力 。同名公众号(沙茶敏碎碎念)
微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

文章插图
怎么把淘宝网店的网址缩短方法一:可以搜索百度短网址,然后将链接输入上去 。直接生成就可以了 。
搜索百度短网址


将要生成的网址输入进去


点击生成,直接复制生成后的短网址就可以了 。


方法二:新浪微博里的链接,发布新浪微博会自动的生成短网址
微博淘宝是怎么把长网址压缩成短网址的背后的技术并不难

文章插图
淘宝店铺那么长的网址怎么转换的就缩短了1、打开浏览器
2、打开“淘宝宝短网址”页面
3、输入或粘贴入要转成短链接的网址
4、点击下面的橙色按钮提交