Maison  >  Article  >  développement back-end  >  Comment construire un serveur HTTP dans Golang (explication détaillée de la méthode)

Comment construire un serveur HTTP dans Golang (explication détaillée de la méthode)

PHPz
PHPzoriginal
2023-04-09 19:30:012242parcourir

Golang est un langage de programmation très populaire. Sa vitesse de développement rapide et son efficacité d'exécution de code élevée sont très adaptées au développement d'applications Web. Cet article explique comment utiliser Golang pour créer un serveur HTTP.

1. Installer Golang

Avant de commencer, nous devons d'abord installer Golang. Vous pouvez télécharger le package d'installation de Golang depuis le site officiel et l'installer sur votre ordinateur. Après l'installation, utilisez l'outil de ligne de commande pour vérifier si Golang est installé avec succès. Vous pouvez saisir la commande suivante :

$ go version

Si le numéro de version de Golang est affiché, cela signifie que Golang est installé avec succès.

2. Construire un serveur HTTP

Maintenant, nous commençons à construire un serveur HTTP. Nous devons d’abord enregistrer le code suivant sous forme de fichier nommé server.go.

package main

import (
    "fmt"
    "net/http"
)

func homeHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, Golang!")
}

func main() {
    http.HandleFunc("/", homeHandler)
    http.ListenAndServe(":8000", nil)
}

Grâce au code ci-dessus, nous avons implémenté un serveur HTTP très simple, qui peut répondre aux requêtes HTTP sur le port local 8000 et envoyer une chaîne "Bonjour, Golang au client !"

Nous pouvons maintenant compiler et démarrer ce serveur via les commandes suivantes.

$ go run server.go

Exécutez le code ci-dessus dans l'outil de ligne de commande. Si aucun message d'erreur n'apparaît, nous pouvons accéder à "localhost:8000" via le navigateur et voir la chaîne "Bonjour, Golang !"

3. Étendre le serveur HTTP

Bien sûr, le code ci-dessus n'implémente qu'un serveur HTTP très basique, qui ne peut pas répondre à nos besoins. Ci-dessous, nous présentons quelques opérations courantes pour étendre le serveur HTTP.

  1. Gestion des requêtes HTTP

Nous pouvons enregistrer la fonction de traitement des requêtes HTTP via la fonction HandleFunc du package http Par exemple, le code suivant peut gérer la requête HTTP GET et afficher "Hello, World to the browser".

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
})
  1. Paramètres de traitement

Nous pouvons obtenir les paramètres dans la requête HTTP via la méthode FormValue de l'objet Request. Par exemple, nous pouvons analyser les paramètres « nom d'utilisateur » et « mot de passe » avec le code suivant et afficher leurs valeurs dans le navigateur.

http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    username := r.FormValue("username")
    password := r.FormValue("password")
    fmt.Fprintf(w, "Username: %s, Password: %s", username, password)
})
  1. Traitement des fichiers statiques

Nous pouvons utiliser la fonction FileServer du package http pour traiter les fichiers statiques. Par exemple, le code suivant peut afficher tous les fichiers situés dans le répertoire actuel sur le port local 8000.

http.Handle("/", http.FileServer(http.Dir(".")))

Lorsque nous accédons à "localhost:8000" via le navigateur, nous pouvons voir tous les fichiers apparaître dans le navigateur.

4. Résumé

Grâce à l'introduction de cet article, nous avons appris à utiliser Golang pour créer un serveur HTTP. Bien que cet article ne présente que certaines des opérations les plus élémentaires, elles suffisent pour implémenter une application Web simple. Dans le futur processus d'apprentissage, nous pourrons implémenter des applications Web plus riches en utilisant d'autres bibliothèques et frameworks.

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:
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