广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang中判断请求是http还是https
  • 714
分享到

golang中判断请求是http还是https

2023-07-05 07:07:27 714人浏览 八月长安
摘要

今天小编给大家分享一下golang中判断请求是Http还是https的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。golan

今天小编给大家分享一下golang中判断请求是Http还是https的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

golang中判断请求是http还是https-用于获取当前访问地址

一个自由职业独立开发者,在线客服系统的开发日志

今天给客服系统增加了一项配置,配置企业微信内部群通知机器人 WEBhook,当有新消息到来的时候,调用 webhook,推送给企业微信群。新消息的内容里,支持 markdown,可以带链接,就想把当前网址的链接带过去,方便直接点击后去回复消息。下面是涉及的技术知识点总结

未使用 nginx 等反向代理的情况下

那么可以直接使用下面的代码来确认,http.Request 结构体的 TLS 字段判断请求是否使用了 HTTPS 协议。如果该字段不为 nil,则说明请求使用了 HTTPS 协议;否则,说明请求使用了 HTTP 协议

package mainimport (    "fmt"    "net/http")func handler(w http.ResponseWriter, r *http.Request) {    if r.TLS != nil {        fmt.Println("HTTPS request")    } else {        fmt.Println("HTTP request")    }}func main() {    http.HandleFunc("/", handler)    http.ListenAndServe(":8080", nil)}

经过反向代理的情况下

上面的代码失效,可以使用下面方法

如果使用了 Nginx 反向代理,那么需要确保反代中传入了下面的 headers 参数 X-Forwarded-Proto

location / {    proxy_pass http://your_upstream_server;    proxy_set_header X-Forwarded-Proto $scheme;}

可以判断这个 header 来确认是否 https

package mainimport (    "fmt"    "net/http")func handler(w http.ResponseWriter, r *http.Request) {    proto := r.Header.Get("X-Forwarded-Proto")    if proto == "https" {        fmt.Println("HTTPS request")    } else {        fmt.Println("HTTP request")    }}func main() {    http.HandleFunc("/", handler)    http.ListenAndServe(":8080", nil)}

综合一下,获取当前访问地址的函数

//获取当前访问的Hostfunc GetHost(r *http.Request) (Url string) {    scheme := "http://"    if r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" {        scheme = "https://"    }    return strings.Join([]string{scheme, r.Host}, "")}

以上就是“Golang中判断请求是http还是https”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网GO频道。

您可能感兴趣的文档:

--结束END--

本文标题: golang中判断请求是http还是https

本文链接: https://www.lsjlt.com/news/350574.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang中判断请求是http还是https
    今天小编给大家分享一下golang中判断请求是http还是https的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。golan...
    99+
    2023-07-05
  • 一文分析go中判断请求是http还是https
    本篇文章给大家带来了关于go的相关知识,其中主要给大家聊聊golang中判断请求是http还是https(用于获取当前访问地址),感兴趣的朋友一起来看一下吧,希望对大家有帮助。golang中判断请求是http还是https-用于获取当前访问...
    99+
    2023-05-14
    http Go
  • php怎么判断是get还是post请求
    本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑在实际使用中,GET是用来取数据的,像跳转到什么页面,做一些逻辑判断。POST大多是表单提交。很不推荐使用表单得时候使用GET,除非像我上面说得,你得行为是为了获取数据...
    99+
    2015-05-03
    php 请求类型 get post
  • 如何判断请求头中是否含有某属性来判断是否是ajax请求
    本篇文章为大家展示了如何判断请求头中是否含有某属性来判断是否是ajax请求,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:<html> <...
    99+
    2022-10-19
  • thinkphp5如何判断是否是post请求
    这篇文章主要讲解了“thinkphp5如何判断是否是post请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“thinkphp5如何判断是否是post请求”吧!在thinkphp5中,可以利...
    99+
    2023-06-30
  • php中怎么判断是奇数还是偶数
    这篇“php中怎么判断是奇数还是偶数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中怎么判断是奇数还是偶数”文章吧。在...
    99+
    2023-06-30
  • php中HTTP请求过程是什么
    这篇文章将为大家详细讲解有关php中HTTP请求过程是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。详述一次完整的HTTP请求过程这个问题的核心是域名解析和服务器(n...
    99+
    2022-10-19
  • node中如何判断是文件还是文件夹
    这篇文章主要介绍node中如何判断是文件还是文件夹,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在node中,可以利用isFile()和isDirect...
    99+
    2022-10-19
  • 如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
    网站经常会被各种爬虫光顾,有的是搜索引擎爬虫,有的不是,通常情况下这些爬虫都有UserAgent,而我们知道UserAgent是可以伪装的,UserAgent的本质是Http请求头中的一个选项设置,通过编程...
    99+
    2022-06-04
    求是 爬虫 蜘蛛
  • php如何判断字符串是中文还是英文
    php判断字符串是中文还是英文的方法:在php项目中自定义一个函数方法,通过“preg_match("/^[^\x80-\xff]...);”判断是否是英文以及“preg_match("/^[".chr(0&#...
    99+
    2022-10-19
  • php怎么判断字符串是中文还是数字
    php判断字符串是中文还是数字的方法:1、通过“if (preg_match("/^[\x7f-\xff]+$/", $str)){...}”判断是否是中文;2、通过“function checkStr($str){.....
    99+
    2023-05-14
    php
  • php如何判断字符串是中文还是数字
    这篇文章主要讲解了“php如何判断字符串是中文还是数字”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何判断字符串是中文还是数字”吧!php判断字符串是中文还是数字的方法:1、通过“i...
    99+
    2023-07-05
  • golang判断key是否在map中的代码
    个人常用函数 func IsContain(items []string, item string) bool { for _, eachItem := range items...
    99+
    2022-11-12
  • php判断字符串是中文还是英文的方法
    这篇文章主要介绍了php判断字符串是中文还是英文的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php判断字符串是中文还是英文的方法:1、通过“preg_match(&q...
    99+
    2023-06-15
  • C#中怎么判断字符串是全角还是半角
    这期内容当中小编将会给大家带来有关C#中怎么判断字符串是全角还是半角,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#字符串的全角是指用二个字节来表示的一个字符C#字符串的半角是用一个字节来表示的一个字符...
    99+
    2023-06-17
  • golang怎么实现判断key是否在map中
    这篇文章主要介绍golang怎么实现判断key是否在map中,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!golang适合做什么golang可以做服务器端开发,但golang很适合做日志处理、数据打包、虚拟机处理、数...
    99+
    2023-06-14
  • Java中的HTTP请求:Shell和NPM是否是必需品?
    在Java应用程序开发中,HTTP请求是一个非常常见的需求。HTTP请求可以让我们从互联网上获取数据,或者将数据发送到服务器上。但是,对于Java开发者来说,如何发送HTTP请求可能是一个问题。在本文中,我们将探讨Java中的HTTP请求...
    99+
    2023-11-11
    shell npm http
  • js如何判断用户是输入的地址请求的路径
    这篇文章主要介绍js如何判断用户是输入的地址请求的路径,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如下所示:  var userAgent =&nbs...
    99+
    2022-10-19
  • JavaScript中判断函数是new还是()调用的区别说明
    方式1 复制代码 代码如下: function Person(n,a){ this.name = n; this.age = a; if(this instanceof Person...
    99+
    2022-11-21
    判断函数 new
  • javaweb判断当前请求是否为移动设备访问的方法
    这段时间都是在做pc端的业务,结果经理找到我说,可能要做移动端的应用,后台逻辑还是用我写的逻辑,但是需要改动一些,看看怎么处理。由于移动端和pc端还是稍微有些区别的,我觉得最好是在一个地儿统一判断,而且不要改动原先的代码,这样可以从一定程度...
    99+
    2023-05-31
    javaweb 移动设备 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作