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

![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 ,那么短链接的原理就是这样了,谢谢

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

java 短链跳转原理_短连接跳转的原理相关推荐

  1. HTTP、TCP、Socket、长连接、短连接的概念和原理及其区别

    文章目录 HTTP Scoket HTTP协议和TCP/IP的关系 Socket与TCP/IP的关系 Socket与HTTP的关系 TCP/IP协议分层 长连接和短连接 长连接和短连接的优点和缺点 短 ...

  2. 预充电电路工作原理_变频冰箱开关电源电路工作原理及检修。

    电冰箱的开关电源电路主要用来为电冰箱其他电路和各部件提供工作电压,市电220V 电压经过开关电源电路处理后,通过接线端子为电冰箱的用电部件供电. 下图所示为三星BCD-226型电冰箱的开关电源电路框图 ...

  3. mysql连接池的原理_数据库连接池的实现及原理

    对于一个简单的数据库应用,由于对于数据库的访问不是很频繁.这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销.但是对于一个复杂的数据库应用,情况 ...

  4. java 调接口 超时处理_接口调用超时的实现原理

    平常开发过程中,如果涉及到RPC调用,对于服务调用方和服务提供方,都是可以设置接口超时时间的.以调用方为例,调用方需要调用远程的一个接口,为了保证服务的质量,一般会设置调用接口的超时时间,比如将调用接 ...

  5. java -jar 工作原理_可执行Jar包运行原理

    spring boot有一个很方便的功能就是可以将应用打成可执行的jar.那么大家有没想过这个jar是怎么运行起来的呢?本篇博客就来介绍下spring boot可执行jar包的运行原理. 1. 打可执 ...

  6. python程序运行原理_谈谈 Python 程序的运行原理

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的 ...

  7. 动态磅是怎么原理_浅谈动态地磅的原理及未来发展方向

    浅谈动态地磅的原理及未来发展方向: 文章介绍了动态地磅的结构和工作原理,针对动态地磅的分类做了全面的概述,分别对不同的动态地磅做了对比及详细的阐述,说明选择和使用动态地磅器的注意事项,凸显了轴组式动态 ...

  8. 地铁框架保护的原理_浅析地铁直流框架保护原理及应急处置

    一.地铁直流框架保护原理直流开关柜柜底安装有绝缘垫,从而保证直流开关柜与大地绝缘.将低阻抗电流继电器(80A)两端分别与直流开关柜柜体和系统地相连接,当柜体对地电压(50100V)大于整定值时,继电器 ...

  9. 基于ip地址的客户识别原理_使用 LVS 实现负载均衡原理及安装配置

    [141] 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale. ...

  10. 简述ospf的工作原理_全方位了解OSPF的工作原理以及涉及到的重要技术

    OSPF协议是IGP中的一种动态路由协议,它属于链路状态协议,交互的是LSA(链路状态通告)信息,对路由信息的认知很清晰.该文主要阐述了OSPF协议的工作原理.OSPF状态机以及OSPF协议中涉及到的 ...

最新文章

  1. 虚拟机linux配置armip,arm-PC-虚拟机环境搭建
  2. Tomcat 下载安装、配置、启动、报错问题
  3. SQL基础操作_6_处理数字
  4. 开启AngularJS 1.X的学习之路(1)
  5. 基于领域知识的Docker镜像自动构建方法
  6. Javascript学习数据结构--集合(Set实现)
  7. opencv 计数后不动了 训练模型时_用OpenCV,深度学习和Python进行年龄识别
  8. extracting lines bases a list using awk
  9. 软考高级报考,科目思维导图概览和介绍
  10. vc mscom控件串口接收不到数据问题
  11. 拓端tecdat|R语言使用ARIMA模型预测股票收益时间序列
  12. Labview 做二维码识别
  13. 瑞利衰落的概念及应对技术——信道编码、交织、跳频
  14. 网上开店,网店系统选择的那些事
  15. 全民农场服务器维护上不去,全民农场微信授权失败登录不上解决方法
  16. kali制作钓鱼网站
  17. java 环绕通知_SpringAOP四种通知类型+环绕通知
  18. 元宇宙三巨头Animoca Brands、Yuga Labs、Gala多维度对比,谁才是未来?
  19. Win10系统新建菜单只有文件夹选项的处理方法
  20. 公开招聘网上报名系统+系统功能介绍—网上报名登陆入口

热门文章

  1. 台式计算机怎么查看网卡号,怎么查看台式机电脑有没有无线网卡?
  2. iOS 导航栏透明度 监听导航栏返回进度
  3. 我们不曾向这个世界的庸俗低头
  4. 习题9-1 时间换算(15 分)
  5. Java获取指定时间前一小时、后一小时的时间
  6. windows7下彻底卸载/删除微软拼音输入法2007
  7. 面对面教你如何用Python提取快递信息
  8. 中心极限定理 central limit theorem
  9. 使用mentohust解决ubuntu下校园网无法连接
  10. 英语诗歌选读 | 期末总结