Maison > développement back-end > Golang > le corps du texte

Comment faire des requêtes via le protocole HTTPS en langage Go

PHPz
Libérer: 2023-04-14 15:00:47
original
1925 Les gens l'ont consulté

Avec l'amélioration de la sensibilisation à la sécurité des réseaux, de plus en plus de sites Web commencent à utiliser le protocole HTTPS pour la protection de la transmission des données. Pour pouvoir mieux interagir avec ces sites Web, nous devons apprendre à faire des requêtes en utilisant le protocole HTTPS dans le langage Go.

1. Introduction

HTTPS est une version cryptée du protocole HTTP, utilisée pour protéger la sécurité des données transmises. Le protocole HTTPS est basé sur le protocole TLS/SSL et sa dernière version est TLS1.3. Sous le protocole HTTPS, le certificat numérique côté serveur peut vérifier l'identité du client et empêcher les attaques de l'homme du milieu.

La bibliothèque standard du langage Go fournit le package net/http et le package crypto/tls pour prendre en charge les protocoles HTTP et HTTPS, parmi lesquels le package crypto/tls est utilisé pour créer des connexions TLS.

2. Requête HTTP

Utilisez la fonction http.NewRequest pour créer une requête HTTP en langage Go. Fournissez la méthode de requête (GET, POST, PUT, etc.), l'URL et le corps de la requête facultatif.

Exemple :

    req, err := http.NewRequest("GET", "http://www.example.com", nil)
    if err != nil {
        log.Fatalln(err)
    }

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        log.Fatalln(err)
    }
Copier après la connexion

Le code ci-dessus crée une requête GET et l'envoie à l'URL spécifiée. Nous pouvons lire le contenu de la réponse via resp.Body. Veuillez noter que lors de l'utilisation de cette version du code, nous n'avons pas envisagé d'utiliser le protocole HTTPS. Cette question sera abordée dans la section suivante.

3. Requête HTTPS

Afin d'établir une connexion HTTPS, nous devons utiliser les fonctions du package crypto/tls.

Exemple :

    http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}

    resp, err := http.Get("https://www.example.com")
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(string(body))
Copier après la connexion

La variable InsecureSkipVerify est définie sur true, indiquant que nous ne vérifions pas l'identité du serveur distant, ce qui est utile à des fins de test. En fait, cette option active une fonctionnalité appelée OCSP Stapling, qui est utilisée pour empêcher les attaques de l'homme du milieu.

4. Client HTTPS

Le package crypto/tls fournit son propre type de client, que nous pouvons créer et utiliser nous-mêmes pour établir des connexions HTTPS.

Exemple :

    tr := &http.Transport{
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }

    client := &http.Client{Transport: tr}

    resp, err := client.Get("https://www.example.com")
    if err != nil {
        log.Fatalln(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatalln(err)
    }

    fmt.Println(string(body))
Copier après la connexion

5. Conclusion

Dans cet article, nous avons appris à utiliser le protocole HTTPS pour faire des requêtes dans le langage Go. Bien que nous puissions désactiver la vérification des certificats via l'option InsecureSkipVerify, dans un environnement de production réel, nous devons suivre les meilleures pratiques de sécurité et utiliser la vérification des certificats pour garantir la sécurité des connexions HTTPS.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!