Maison > développement back-end > Golang > Comment déterminez-vous le schéma d'URL de demande dans Go ?

Comment déterminez-vous le schéma d'URL de demande dans Go ?

DDD
Libérer: 2024-11-03 06:10:03
original
931 Les gens l'ont consulté

How Do You Determine the Request URL Scheme in Go?

Détermination du schéma d'URL de requête dans Go

Dans le middleware Rack pour Ruby, l'acquisition du schéma de l'URL de requête actuelle est simple à l'aide de la méthode schéma#request. Cependant, dans Go, le champ http.Request.URL.Scheme renvoie une chaîne vide, laissant les développeurs perplexes.

Dévoilement du schéma

La clé pour déverrouiller le schéma d'URL de requête dans Go réside dans reconnaissant que les requêtes HTTP et HTTPS doivent être traitées. En employant à la fois les fonctions http.ListenAndServe() et http.ListenAndServeTLS(), nous répondons aux deux protocoles.

TLS à la rescousse

HTTPS, étant HTTP sur TLS, fournit une propriété TLS dans *http.Request qui divulgue des informations sur la connexion TLS. En examinant cette propriété, on peut discerner le protocole utilisé :

  • Si r.TLS est non nul, la requête a été faite via HTTPS.
  • Si r.TLS est nul, la demande a été effectuée via HTTP.

Mise en œuvre

<code class="go">func handler(w http.ResponseWriter, r *http.Request) {
    if r.TLS == nil {
        // the scheme was HTTP
    } else {
        // the scheme was HTTPS
    }
}

func main() {
    http.HandleFunc("/", handler)
    go func() {
        log.Fatal(http.ListenAndServeTLS(":8443", "localhost.crt", "localhost.key", nil))
    }()
    log.Fatal(http.ListenAndServe(":8080", nil))
}</code>
Copier après la connexion

Cette approche garantit que les demandes sont traitées de manière transparente, qu'elles soient HTTP ou HTTPS, fournissant un mécanisme fiable pour déterminer le schéma d'URL de demande.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal