Maison  >  Article  >  développement back-end  >  Un article analysant comment déterminer si une requête est http ou https in go

Un article analysant comment déterminer si une requête est http ou https in go

藏色散人
藏色散人avant
2023-03-02 17:11:023636parcourir

Cet article vous apporte des connaissances pertinentes sur go. Il explique principalement comment déterminer si la requête est http ou https en golang (utilisée pour obtenir l'adresse d'accès actuelle). Les amis intéressés devraient y jeter un œil. vous sera utile. Tout le monde est utile.

Déterminez si la demande est http ou https en golang - utilisé pour obtenir l'adresse d'accès actuelle

Développeur indépendant indépendant, le journal de développement du système de service client en ligne

Aujourd'hui, une configuration a été ajoutée au service client système pour configurer le WeChat interne de l'entreprise. Le webhook du robot de notification de groupe, lorsque de nouveaux messages arrivent, appelle le webhook et le transmet au groupe WeChat de l'entreprise. Le contenu des nouveaux messages prend en charge le markdown et peut apporter des liens. Si vous souhaitez apporter le lien de l'URL actuelle, vous pouvez cliquer directement pour répondre au message. Ce qui suit est un résumé des points de connaissances techniques impliqués.

Si un proxy inverse tel que nginx n'est pas utilisé

Vous pouvez directement utiliser le code suivant pour confirmer Le champ TLS de la structure http.Request détermine si la requête utilise le protocole HTTPS. Si ce champ n'est pas nul, cela signifie que la requête utilise le protocole HTTPS ; sinon, cela signifie que la requête utilise le protocole HTTP

package main
import (
    "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)
}

Après être passé par un proxy inverse

Le code ci-dessus est invalide, vous pouvez utiliser la méthode suivante

Si vous utilisez Si vous disposez d'un proxy inverse nginx, vous devez vous assurer que le paramètre d'en-tête suivant

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

【Recommandation associée :

Tutoriel vidéo Go

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer