短信(短链接)跳转

  • 短信里面通常会带上各种活动链接,然后用户点开链接可以打开浏览器到活动页面。
    在这里插入图片描述

短链接转换成长链接

  • 把短链接复制到浏览器打开,发现跳转之后立马就换了个地址
// 原地址
https://u.10010.cn/qAPZU
// 目标地址
'https://m.client.10010.com/mobileService/clickCountLogRecord/pageClickCount.htm?flag=new&title=礼包&openUrl=https://m.client.10010.com/myPrizeForActivity/tenth517/homePage&duanlianjieabc=qAPZU'

  • 短链接跳转长链接,通过 302 临时重定向即可完成
    • 浏览器先向 u.10010.cn/qAPZU 地址发送 GET 请求。
    • 根据参数 qAPZU 去查找数据库,找到对应的活动的真实链接。
    • 后端返回了 302 重定向,并且指定了目标地址。
    • 浏览器跳转到目标地址。

在这里插入图片描述
node代码实现

const http = require('http')
const server = http.createServer()

// 这里存放所有的短链和长链的对应关系
const urlMap = {
  'qAPZU': 'https://m.client.10010.com/mobileService/clickCountLogRecord/pageClickCount.htm?flag=new&title=礼包&openUrl=https://m.client.10010.com/myPrizeForActivity/tenth517/homePage&duanlianjieabc=qAPZU'
}

server.on('request', function (req, res) {
  const pathname = req.url.slice(1)
  const taretUrl = urlMap[pathname]
  console.log(taretUrl)
  if (taretUrl) {
    // 通过响应头来实现服务端重定向
    res.writeHead(302, {
      'Location': encodeURI(taretUrl)
    })
    res.end()
  } else {
    res.end('404')
  }
})
server.listen(3000, function () { console.log('启用成功'); })

  • 实现长地址和短地址的对应关系

    • 首先需要确保每次生成的短地址都是唯一的
    • 将地址转换成62进制
      • 比如 u.10010.cn/999 这样的形式,而是把 999 转换为 62 进制表示,比如 u.10010.cn/g7
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值