java 短链跳转原理_短连接跳转的原理

日常中常用短链接来节省字符长度,如中国移动的活动短信:

![Screenshot_20190622_134628_com.android.mms.jpg](https://static.studygolang.com/190622/c885e31b5b6bc18ac32c50d2b47ab60b.jpg)

那么它的实现原理很简单: **就是302跳转**

通过对传进来的url生成一个短的编码,然后使这个编码与这个url在数据库中一一对应,然后通过访问对外公开的api中如:

https://t.cn/+生成的短链接,然后取到这个生成的短链接去数据库中查询对应的url,重定向302返回浏览器即可。这里我们不关心加密之类算法,数据存储的过程,只看短链接如何实现跳转的过程

下面是代码演示:

```

package main

import (

"net/http"

)

func OpenOrigin(w http.ResponseWriter, r *http.Request) {

// 截取传入的段路径

path := r.URL.Path[len("/jump/"):]

// http.StatusFound 就是302

if path == "clylia" {

// 重定向到原网址,使用clylia和https://www.baidu.com对应

http.Redirect(w, r, "https://www.baidu.com", http.StatusFound)

} else if path == "golang" {

// 重定向到原网址,使用golang和https://studygolang.com对应

http.Redirect(w, r, "https://studygolang.com", http.StatusFound)

} else {

w.Write([]byte("I don't konw what to do."))

}

}

func main() {

http.HandleFunc("/jump/", OpenOrigin)

http.ListenAndServe(":5000", nil)

}

```

这里我们启动了一个http server,通过访问http://127.0.0.1:5000/jump/clylia ,来实现跳转的过程

启动服务,我们在浏览器中访问http://127.0.0.1:5000/jump/clylia 时,浏览器会跳转到https://www.baidu.com 这里,输入http://127.0.0.1:5000/jump/golang 时就是访问 https://studygolang.com ,那么短链接的原理就是这样了,谢谢

有疑问加站长微信联系(非本文作者))

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值