短连接跳转的原理

栏目: Go · 发布时间: 6年前

内容简介:日常中常用短链接来节省字符长度,如中国移动的活动短信:下面是代码演示:这里我们启动了一个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,那么短链接的原理就是这样了,谢谢


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

运营有道:重新定义互联网运营

运营有道:重新定义互联网运营

李明轩 / 机械工业出版社 / 2017-7-31 / 69.00元

本书是前百度资深运营专家多年运营经验的总结,是作者运营千万级用户规模的大型互联网产品的实操经验复盘,是作者在“在行”上为近百位CEO和高管提供互联网运营咨询服务后对互联网运营需求的深入洞见。 本书的思想基础是“运营必须以用户为中心”,从产品、用户、市场3个维度对互联网运营重新进行了系统性的梳理:从道的层面解读并重新定义运营方法论,从术的层面围绕方法论提出行之有效的解决方法和实际案例。重点不在......一起来看看 《运营有道:重新定义互联网运营》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

html转js在线工具
html转js在线工具

html转js在线工具