那些你看到的短链接,居然都是这么实现的,是不是太简单了?

百科   2024-11-15 23:32   北京  

蓝色字关注橘子的分享

想必大家一定看到过类似这样子的短信,这里面有一个链接,我们称之为短链接,因为它的原始链接是非常长的!https://galaxy-h5.geely.com/galaxy-car-control-h5/pages/car-share/index?id=xxxxx,这个就是你看到的短信链接的真实网址了!

那你有没有想过,这个短链接是怎么来的,为什么输入这个短链接就能跳转到了真实的这个长链接呢?

短链接比较短,占用字符少,而且还容易记住,这些都是优势,所以被广泛应用的。那么它是怎么实现的?

我们可以这么理解,当我们输入这个短链接的时候,肯定是哪里能够匹配到短链接对应的长链接,然后访问长链接即可。

所以我就按照这个思路写了一个生成短链接的工具,并且访问短链接就能跳转到长链接所对应的网址了!

我写了一个页面,你可以输入你的长链接,点击生成短链接,就能生成一个对应的短链接,然后可以点击复制,将这个短链接复制到剪切板上面,方便下次 ctrl + v

那么这个对应关系是这么弄的呢,其实很简单,当你点击生成短链接的时候,后端接口,就会生成一个对应的短链接,然后保存到数据库中。

async create(createShorturlDto: CreateShorturlDto) {
    const res = await this.shortUrlManager.findOneBy(ShortUrl, { longUrl: createShorturlDto.longUrl });
    if (res) {
      return new HttpException(res.shortUrl, CODE_NUMBER.SUCCESS);
    } else {
      const savaData = new ShortUrl();
      savaData.shortUrl = generateRandomStr(6);
      savaData.longUrl = createShorturlDto.longUrl;
      const data = await this.shortUrlManager.save(savaData);
      return new HttpException(data.shortUrl, CODE_NUMBER.SUCCESS);
    }  


然后,你使用短链接进行访问的是,将会重定向短链接到长连接上去。


  @Get(':code')
  async findOneJump(@Param('code') code: string@Res() res: Response) {
    const result = await this.shorturlService.findOneJump(code);
    if (!result) {
      throw new BadRequestException('短链接不存在');
    } else {
      res.redirect(result.longUrl);
    }  


通过这样子的方式就能使用短链接访问原始的长链接网址啦!



你可以从上面的gif图片看到,输入了短链接后,会自动重定向到真正的长链接网址啦!


大家可以点击下面这个短链接网址试试看,或者点击阅读原文,访问我的短链接生成网站,自己来生成一个试试看!


短链接网址:https://api.orangecj.cn/qmLaIe


生成短链接的工具网址:https://www.orangecj.cn/shortUrl


往期回顾
BREAK AWAY

为了不看广告,我自己写了一个json格式化软件!

2024-11-14

遇到喜欢的网页,直接使用这个AI工具来帮你生成代码!还能自定义你想要的代码框架!

2024-11-13

我有一个朋友,问我霸总的生活是什么样的?那我必须要满足他这个愿望,然后有了这个搜短剧的网站!

2024-10-13

我这里有几个网站,直接让你会员费减半,省下不少钱!但是也影响了某些人利益!

2024-10-09

这次,免费去水印又双叒叕重新发布了!还有这些消息你不能错过……

2024-09-22

殚精竭虑找到的最新电视软件!B站没有超级大会员也能直接在电视看啦!低版本安卓也能安装KTV软件了!一次安装完!

2024-09-08

windows系统开机自启并后台运行wsl!手机端homeassistant控制所有智能家居!包含米家、美的以及海尔等!

2024-08-16

如何访问使用wsl安装的windows的子系统linux服务?一个很简单的方法就可以完成!

2024-08-15

真没想到啊,我在HA上用这个方法快速的绑定了美的美居和海尔智家!不信你来试试看!

2024-08-13

给你的windows系统和私人网盘挂载几个网盘!AList直接挂载夸克网盘、百度网盘等!解放内存!

2024-08-12

本文来源:橘子的分享微信公众号


编辑/橘子orange
图片/橘子orange
排版/何火星星
©橘子的分享

DECEMBER

点个在看你最好看

橘子的分享
不要让时代的悲哀,成为你我的悲哀!
 最新文章