短信(短链接)跳转
- 短信里面通常会带上各种活动链接,然后用户点开链接可以打开浏览器到活动页面。

短链接转换成长链接
- 把短链接复制到浏览器打开,发现跳转之后立马就换了个地址
// 原地址
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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
