Maison >développement back-end >Golang >Comment implémenter des pages d'erreur 404 personnalisées dans Go à l'aide du package « net/http » ?

Comment implémenter des pages d'erreur 404 personnalisées dans Go à l'aide du package « net/http » ?

DDD
DDDoriginal
2024-12-18 03:15:09821parcourir

How to Implement Custom 404 Error Pages in Go using the `net/http` Package?

Implémentation de pages d'erreur 404 personnalisées à l'aide du package Net/HTTP

Lorsqu'un utilisateur accède à une URL inexistante, le comportement par défaut dans les serveurs Web doivent afficher un message générique "404 Page Not Found". Pour améliorer l'expérience utilisateur, vous souhaiterez peut-être créer une page 404 personnalisée qui fournit plus d'informations ou redirige les utilisateurs vers une destination pertinente.

Dans ce scénario, avec le code simplifié fourni :

package main

import (
    "fmt"
    "net/http"
)

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

func homeHandler(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        errorHandler(w, r, http.StatusNotFound)
        return
    }
    fmt.Fprint(w, "welcome home")
}

func smthHandler(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/smth/" {
        errorHandler(w, r, http.StatusNotFound)
        return
    }
    fmt.Fprint(w, "welcome smth")
}

func errorHandler(w http.ResponseWriter, r *http.Request, status int) {
    w.WriteHeader(status)
    if status == http.StatusNotFound {
        fmt.Fprint(w, "custom 404")
    }
}

La fonction errorHandler, qui est utilisée pour gérer toutes les erreurs HTTP, peut être personnalisée pour afficher une page d'erreur 404 personnalisée en renvoyant le code d'erreur http.StatusNotFound et en écrivant le contenu souhaité dans le ResponseWriter.

Dans cet exemple, la fonction errorHandler renvoie un message personnalisé "custom 404" lorsqu'un statut d'erreur 404 est détecté. Cela vous permet de remplacer le message par défaut « 404 Page Not Found » par une page plus conviviale et informative.

De plus, la fonction errorhandler peut être étendue pour détecter d'autres erreurs HTTP et implémenter une gestion personnalisée des erreurs, comme comme la journalisation des erreurs, l'envoi de notifications par e-mail ou la redirection des utilisateurs vers une page d'erreur spécifique.

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