最近学到的「短链接」知识

从零实现一个短链接项目 短链接就是短网址,是在长度上比较短的网址。简单来说就是帮您把冗长的URL地址缩短成8个字符以内的短网址。当我们在腾讯、新浪发微博时,有时发很长的网址连接,但由于微博限制字数,所以微博就自动把您发的长网址给转换成短网址了。在和手机提醒等限制字数的地方来使用短网址,的确是一个不错的方案。 阅读详情

前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。

一、短链接介绍

举个例子,现在我的GitHub的地址是这个:https://github.com/ZhongFuCheng3y/3y (36个字符)

我通过百度的短链接服务可以将上面的地址转成https://dwz.cn/LwlrfG4j(23个字符)

640?wx_fmt=png
转短链接

那我为什么要将原有的URL转成较短的链接呢?比如我们发短信提醒用户去XXX,XXX有优惠活动,在文案上往往会带有一个链接进行跳转,方便用户快速去到对应的活动落地页。

而短信的发送是需要成本的,短信的成本主要有两方面组成:

  1. 发送的人数(发的人越多,自然短信的花费就越大,这个我就不解释了)

  2. 短信发送的字数(比如,文案总字数超过70个字,那就算两条短信计费,超过140个字就算三条短信计费)

所以在发送短信给用户时:要么就投放更加精准优质的用户,以便控制好发送的数量,要么就尽可能控制文案的字数。

显然,如果在短信上配上普通的URL,那真正的文案可写的字数就没多少了。于是我们可以发现,各大公司的短信推送的URL都是短链接。

640?wx_fmt=png
短链接案例之一

比如在一些平台发布消息时会限制字数,如果我们的发的URL过长就很容易就被限制住了:

640?wx_fmt=png
限制字数

使用短链接的好处:短、字符少、美观、便于发布、传播。

二、短链接它是怎么干的呢?

我们先回到生成好的短链上https://dwz.cn/LwlrfG4j

虽然这个链接看起来有点奇怪,但他终究还是一个链接,从URL的特征我们可以分出:

  • dwz.cn是域名

  • LwlrfG4j是参数

640?wx_fmt=png
域名

我们在浏览器请求一下短链接看看是什么情况:

640?wx_fmt=png
302跳转

短链接的原理其实就是:

  • 将长链接通过一定的手段生成一个短链接

  • 访问短链接时实际访问的是短链接服务器,然后根据短链接的参数找回对应的长链接

  • 重定向跳转

640?wx_fmt=png
大致原理图

2.1 核心的要解决的问题

通过上面的分析我们可以知道的是,我们实际核心要做的是怎么从LwlrfG4j类似这样的参数找到对应的完整URL:https://github.com/ZhongFuCheng3y/3y

脑子第一时间想到的是:能不能通过一个压缩算法将https://github.com/ZhongFuCheng3y/3y压缩更小的字符?

显然,不能,压缩算法大多数都是针对大文本才奏效,本身的URL也不见得有多大…压缩出来肯定比原来的URL还大。

脑子第二时间想到的是:能不能用Hash算法?还是不能,用Hash存在哈希碰撞的问题

  • 什么是哈希碰撞?两个不相同的字符串(值)进行Hash操作后,得到的哈希值相同。

  • 这就意味着,两个完全不同的长链得到的哈希值一模一样,而我的短链是依赖哈希值去找到长链的(此时一个短链对应多个长链,这不合理)。

脑子第三时间想到的是?脑子想不到了。

现在业内用得比较多的是发号器(ID自增)+62进制编码:

  • 比如,我将https://github.com/ZhongFuCheng3y/3y看作是10000,然后将10000进行62进制编码得到的结果是:2Bi

640?wx_fmt=png

那我的短链URL就可以弄成https://3y.cn/2Bi,其中3y.cn是域名,2Bi是经过62进制转换后的参数。

为什么要用62进制转换?64进制转换倒是听得多了

  • 62进制转换是因为62进制转换后只含数字+小写+大写字母。而64进制转换会含有/,+这样的符号(不符合正常URL的字符)

  • 10进制转62进制可以缩短字符,如果我们要6位字符的话,已经有560亿个组合了。

640?wx_fmt=png
6位字符

总结:

  • ID自增后,转成62进制,在DB保存映射关系,生成短链接

640?wx_fmt=png
短链接过程

三、短信的链接直接跳转到APP

以下内容来源:

https://sq.163yun.com/blog/article/158315832059072512

作者:西西吹雪

综合起来就是:

  • 通过 Deep Links(iOS 则是Universal Links),可以实现点击短信链接直接唤起 App;

  • 如果系统因为各种原因不支持 Deep Links,备选方案是 intent filter,不过会出弹框让用户选择用哪个 App 打开链接;

  • 如果用户没有选择我们的 App 而是选择了浏览器打开,则通过 自定义 scheme 尝试唤起 App;

  • 由于技术和成本问题,我们忽略不支持 自定义 scheme 的浏览器。

640?wx_fmt=png
短信链接唤醒APP

最后

这篇文章主要是简单了解一下短链接的相关知识,一个完备的短链服务肯定还要考虑更多的事,这里我就不展开了(毕竟我也没真正写过,可以在下方的链接继续学习)~

更多资料查阅:

  • https://www.zhihu.com/question/29270034/answer/46446911

  • https://hufangyun.com/2017/short-url/

  • https://blog.youkuaiyun.com/c10WTiybQ1Ye3/article/details/78098840

两年呕心沥血的文章:「面试题」「基础」「进阶」这里全都有!

640?wx_fmt=jpeg

200多篇原创技术文章
海量视频资源
精美脑图
面试题

长按扫码可关注获取 

在看和分享对我非常重要!640?

shortlink:短链接服务(微服务示例) 短链接 短链接服务 高层建筑 建筑(miro.com) 要求 码头工人 码头工人组成 协议3.7.1+ Ansible 反星系 服务 服务 描述 语言/框架 文件 短链接 短链接服务 去 记录器 记录仪服务 去 机器人 发送通知给SMTP,闲暇,电报 去 快捷键 短链接CLI 去 跑 make run Kubernetes(1.19+) make minikube-up make helm-shortlink-up DNS / HTTP 服务: ui-next.local shortlink.local 将127.0.0.1 [name services].local添加到您的/etc/hosts HTTP API 导入以测试HTTP API Swagger 支持HTTP REST API: HTTP(中文) gRPC网关 GraphQL 选修的 随身携带 智商 立即下载

相关推荐

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】

一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~

Sky_Bug的博客 2418

http中的长连接和短连接你真的了解吗?

做web开发的老铁应该都知道http协议,它是前后端通信中非常常用的一种通信协议,HTTP(HyperText Transfer Protocol)即超文本传输协议,是互联网上应用最为广泛的一种网络协议。HTTP协议是一个基于请求-响应模型的协议,客户端(浏览器、移动客户端等)发起请求,服务端接收请求后进行处理并返回响应。在HTTP协议中,有两种连接方式:长连接和短连接,它们主要区别在于连接的持续时间和资源利用率。

weixin_45701550的博客 5456

实测iOS和安卓大不同!用NFC触发小程序跳转的完整避坑指南(含NFC Tools配置)

本文深入解析iOS与安卓在NFC触发小程序跳转时的核心差异,提供微信与支付宝小程序的NFC实现方案及优化技巧。涵盖跨平台兼容性测试方法论、性能优化策略及异常处理方案,帮助开发者避开常见陷阱,提升跳转成功率。特别针对NFC Tools配置和微信Universal Link使用进行详细指导。

asdfghjkl978564的博客 433

HTTP协议的长连接和短连接

HTTP协议的长连接和短连接

XuXin_971222的博客 786

光模块MCU开发全解析:从架构原理到固件调试实战

在高速光模块中,MCU并非传统印象里的核心处理器,而是负责数字诊断、闭环控制和协议管理的嵌入式管家。随着800G、1.6T模块的普及,MCU与DSP/SoC的协同、I2C总线通信、ADC采集、APC/TEC控制等低速域任务愈发关键。理解MCU的选型规格、启动流程和固件设计,是保障光模块稳定运行的基础。本文从光模块架构切入,剖析MCU的角色定位,详细拆解I2C从机实现、电芯片配置、校准与升级等工程细节,并结合实际调试经验梳理常见故障与排查思路,为嵌入式工程师提供一份可落地的光模块MCU开发指南。

weixin_29192365的博客 363

IEC103协议实战指南:报文解析与传输优化策略

本文深入解析IEC103协议在电力自动化系统中的核心应用,重点拆解其固定帧与可变帧两种报文格式,并详细阐述了主从问答与非平衡传输机制。文章结合实战经验,针对报文解析中的常见问题(如字节序、超时重发)提供了解决方案,并探讨了传输层优化策略,旨在帮助工程师实现更可靠、高效的通信链路。

r2s3t4的博客 541

短链是什么原理?怎么实现呢?

301其实是比较符合HTTP协议语义的,但浏览器会缓存目标网址,下次访问时会直接跳过短链,跳转到目标网址,无法做一些统计,比如短链访问次数等。常用的自增序列算法有雪花算法、Redis自增、MySQL主键自增等,生成唯一ID后,再转换为62进制字符串,转换后的62进制字符串可用作短链。原理还是很简单的,其实就是在后台保存有短链和长链的映射关系,然后进行重定向,让浏览器跳转到对应的长链接。302:浏览器访问时,会先后访问短链代理服务和目标服务,对服务器的压力也就相应大些,但可以做一些统计。

lingbomanbu_lyl的博客 9226

新手别怕!用嘉立创EDA从零画一块ESP8266最小系统板(附完整PCB源文件)

本文详细指导新手如何使用嘉立创EDA从零开始设计ESP8266最小系统板,涵盖原理图绘制、PCB布局、布线技巧及设计验证等关键步骤。通过实战案例和实用技巧,帮助读者快速掌握PCB设计基础,轻松打造自己的物联网开发板,并附完整PCB源文件供参考。

weixin_28716769的博客 618

短链接服务的原理和实现

1 概述 在社区类产品甚至短信中,我们常常可以看到加入了诸如https://dwz.win/auQx几位编码的短链接。虽然很大一部分因为可能是社交类媒体的文本长度限制,但将长链接转成短链,还有其它几大优势: 短链接一般六到八位路径地址,方便对外使用 短链接支持定向,也可随时修改重定向源地址 简化二维码,提高二维码的识别率(二维码复杂度和原始信息大小正相关) 常用的短链接服务商: 新浪短链接 SUO短链接 百度短链接 2 实现原理 再浏览器中访问https://dwz.win/auQx,查看其请求过程

程序猿周周的博客 6191

vcenter server6.0上vmware inventory 、virtualvcenter等服务无法开启

描述:一天,vcenter访问不了,因此Windows远程到vcenter server上。相关服务未开启,开启virtualCenter server服务提示相关依赖服务未开启,于是开启依赖项服务Inventory服务报错。然后打算使用 C:\Program Files\VMware\vCenter Server\bin\servcivce-control来开启vmware服务 1....

Pespi_Co1a的博客 3066

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1616

TSP问题,贪心法,最近邻点,最短链接

    笔者接着上一次的博客继续讨论TSP问题(TSP问题,动态规划法),这次采用贪心法,至少有两种贪心策略是合理的:最近邻点策略和最短链接策略。    (一)最近邻点策略    从任意城市出发,每次在没有到过的城市中选择最近的一个,直到经过了所有的城市,最后回到出发城市。        设图G有n个顶点,边上的代价存储在二维数组w[n][n]中,集合V存储图的顶点,集合P存储经过的边,最近邻点策...

VM_Alike的博客 1万+

PCL ICP算法实现点云精配准【2026最新版】

PCL1.14.1 及之前版本所实现的迭代最近点ICP算法。博客长期更新,本文最新更新时间为:2026年4月17日。

点云侠的博客 31万+

基于nginx代理实现短链接跳转

基于nginx代理实现短链接跳转 最近项目需要,写了一个短链接微服务,基本原理如下图 那么我们的跳转实现步骤: 浏览器里输入 https://short.cn/abc123 DNS首先解析获得 https://short.cn 的 IP 地址 当 DNS 获得 IP 地址以后(比如:127.0.0.1),会向这个地址发送 HTTP GET 请求,查询短码 abc123 https://short.cn 服务器会通过短码 abc123 获取对应的长 URL 请求通过 HTTP 301/302 转到对应的长

weixin_43654401的博客 6677

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

短链接生成

转载:https://www.cnblogs.com/Damaer/p/15642206.html

a_Cfgh的博客 6254

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

短链接服务

简介 短链接服务就是将一段长的URL转换为短的URL,比如利用新浪微博的短链接生成器,可将一段长的URL (http://blog.youkuaiyun.com/poem_qianmo/article/details/52344732)转换为一段短的URL(http://t.cn/RtFFvic),用户通过访问短链接即可重定向到原始的URL。 执行过程: 1.用户访问短链接:http://t...

yun914的博客 2155

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

全网最通俗易懂的【短链接】入门

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。 一、短链接介绍 举个例子,现在我的GitHub的地址是这个:https://github.com/ZhongFuCheng3y/3y (36个字符...

3y 2248

微信长链接转短链接

最近微信除了公告6月2号,限制短链接调用次数为10次。 业务需求,需要把长链接转为短链接,再生成二维码,减少二维码密度,提高用户扫码效率。 1、工具类:MD5Util(网上找的md5加密工具类) package com.bycotrun.platform.utils; import java.security.MessageDigest; /** * * 项目名称:dmsys 类名称:MD5Util 类描述: 创建人: 创建时间:2020年5月21日 下午2:26:04 修改人: * 修改时间:

qq_44872773的博客 833

如何设计并实现一个短链接服务?

面试官:你平时是否留意过一些垃圾短信中包含短链接? 候选人:有的,就像下面这样! 面试官: 为什么选择这种短链接这种方式? 有什么好处? 如果让你实现一个短链接的生成服务,你会怎么设计? 这篇文章,我们就来聊聊上述问题! 首先,短url的好处: 短. 短信和许多平台(微博)有字数限制,太长的链接加进去都没有办法写正文了. 好看. 比起一大堆不...

藏经阁 3330

短链接生成实现

背景 最近偶然看到运营在群里进行页面分享的时候链接很长,导致发出来之后直接被刷屏,这样体验肯定不好,当然也不利于推广,因此比较好的方式是生成一个短链接服务,能够把链接变短,所以自己写个工具进行优化,也调研了下常见的短链接服务设计。 方案对比 方案1: 可以通过摘要MD5运算,得到一个固定长度的值,然后持久化到数据库。当然在生成的时候都需要判断是否重复,哈希碰撞的话,也就是如果重复就重新进行运算,直到生成并写入到数据库。 优点:长度固定、直接调用库简单。 缺点:数据量大的时候可能碰撞比较频繁,导致生成效率比较

超威半导体 3078

长URL链接转短链接算法(JAVA)

最近看到微博的短链接真是很火啊,新浪、腾讯、搜狐等微博网站都加入了短链接的功能。之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少。短链接的主要职责就是把原始链接很长的地址压缩成只有6 个字母的短链接地址,当我们点击这6 个字母的链接后,我们又可以跳转到原始链接地址。    开始以为短链接是按照某种算法把原始链接压缩为短链接,再根据算法从短

Mr_zore的专栏 5038
上一篇: 最近学到的Lambda表达式基础知识
下一篇: 最近我学到的ABTest知识
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值