内容简介:日常中常用短链接来节省字符长度,如中国移动的活动短信:下面是代码演示:这里我们启动了一个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,那么短链接的原理就
日常中常用短链接来节省字符长度,如中国移动的活动短信: 那么它的实现原理很简单: 就是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,那么短链接的原理就是这样了,谢谢
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何正确管理HBase的连接,从原理到实战
- 连接跟踪 (conntrack):原理、应用及 Linux 内核实现
- nulls_hlist原理 和 tcp连接查找
- 从源码分析DBCP数据库连接池的原理
- 聊聊 OkHttp 实现 WebSocket 细节,包括鉴权和长连接保活及其原理
- 聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编程原本
Alexander Stepanov、Paul McJones / 裘宗燕 / 机械工业出版社华章公司 / 2012-1-10 / 59.00元
本书提供了有关编程的一种与众不同的理解。其主旨是,实际的编程也应像其他科学和工程领域一样基于坚实的数学基础。本书展示了在实际编程语言(如C++)中实现的算法如何在最一般的数学背景中操作。例如,如何定义快速求幂算法,使之能使用任何可交换运算。使用抽象算法将能得到更高效、可靠、安全和经济的软件。 这不是一本很容易读的书,它也不是能提升你的编程技能的秘诀和技巧汇编。本书的价值是更根本性的,其终极目......一起来看看 《编程原本》 这本书的介绍吧!