Maison > développement back-end > Golang > Comment la méthode « ServeHTTP » de Go active-t-elle des gestionnaires HTTP personnalisés ?

Comment la méthode « ServeHTTP » de Go active-t-elle des gestionnaires HTTP personnalisés ?

Mary-Kate Olsen
Libérer: 2024-11-29 11:48:11
original
604 Les gens l'ont consulté

How Does Go's `ServeHTTP` Method Enable Custom HTTP Handlers?

Comprendre ServeHTTP : comment fonctionne ce code ?

Dans Go, l'implémentation de la méthode ServeHTTP pour un type personnalisé rend ce type compatible avec le Interface de gestionnaire, un élément essentiel de la création de gestionnaires HTTP. Cela permet à un type personnalisé de gérer les requêtes HTTP entrantes.

Explorons le code en question :

package main

import (
    "fmt"
    "net/http"
)

type foo int

func (m foo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "Some text")
}

func main() {
    var bar foo
    http.ListenAndServe(":8080", bar)
}
Copier après la connexion

Comment ça marche ?

  1. Lorsque http.ListenAndServe est invoqué avec bar comme argument, il crée un serveur HTTP et enregistre le gestionnaire personnalisé, le ServeHTTP de foo. méthode, pour gérer les requêtes entrantes.
  2. Lorsqu'une requête est reçue, le serveur invoque la méthode ServeHTTP du gestionnaire enregistré, qui est la méthode ServeHTTP de foo dans ce cas.
  3. Dans la méthode ServeHTTP, la requête HTTP et la réponse sont gérées. Dans cet exemple, il écrit « Du texte » à l'auteur de la réponse.

Comment la fonction ServeHTTP est-elle accessible ?

La fonction ServeHTTP est accessible via le implémentation de l'interface Handler dans le type personnalisé de foo. En implémentant ServeHTTP, foo signale qu'il est prêt à gérer les requêtes HTTP et le package HTTP le reconnaît comme un gestionnaire valide.

HandlerFunc

Le type HandlerFunc et sa fonction associée syntax est une aide qui facilite la définition de fonctions anonymes en tant que gestionnaires HTTP sans créer de type personnalisé comme dans foo. La méthode HandlerFunc ServeHTTP appelle simplement la fonction anonyme avec les arguments appropriés.

En substance, le code montre comment l'implémentation de la méthode ServeHTTP permet aux types personnalisés de gérer les requêtes HTTP, où le serveur responsable de l'écoute sur un port réseau envoie demandes entrantes à ces gestionnaires.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal