短信(短链接)跳转

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

短链接转换成长链接

  • 把短链接复制到浏览器打开,发现跳转之后立马就换了个地址
// 原地址
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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部