Maison  >  Article  >  développement back-end  >  paramètres des cookies Golang

paramètres des cookies Golang

WBOY
WBOYoriginal
2023-05-19 09:02:06959parcourir

Golang est un langage de programmation efficace, concis et développé rapidement pour créer des applications Web. Dans la plupart des applications Web, les cookies sont utilisés pour gérer la session utilisateur et l'état du site Web. Cet article explique comment définir et gérer les cookies dans Golang.

1. Que sont les cookies ?

Un cookie est un fichier texte stocké sur l'ordinateur de l'utilisateur visitant le site Internet. Les cookies sont générés par le serveur et envoyés au navigateur dans une réponse HTTP. Le navigateur stocke le cookie sur l'ordinateur de l'utilisateur et renvoie le cookie au serveur chaque fois que le même site Web est consulté. Cela permet au serveur de lire les informations stockées dans le cookie, puis d'effectuer les opérations appropriées, telles que le maintien de l'état de la session utilisateur.

2. Définir des cookies

Dans Golang, la configuration des cookies est très simple. Les cookies peuvent être définis à l'aide de la méthode SetCookie dans le package net/http. Cette méthode nécessite un ResponseWriter et un pointeur vers une structure http.Cookie.

L'exemple de code est le suivant :

package main

import (
    "fmt"
    "net/http"
)

func setCookie(w http.ResponseWriter, r *http.Request) {
    cookie := &http.Cookie{
        Name:    "name",
        Value:   "value",
        Expires: time.Now().Add(24 * time.Hour),
    }
    http.SetCookie(w, cookie)
    fmt.Fprintln(w, "Cookie set successfully!")
}

func main() {
    http.HandleFunc("/", setCookie)
    http.ListenAndServe(":8080", nil)
}

Dans le code ci-dessus, nous définissons un cookie nommé "name" avec une valeur de "value" et fixons son délai d'expiration à 24 heures. Ensuite, utilisez la méthode SetCookie pour écrire le cookie dans ResponseWriter. Enfin, lorsque nous accédons à l'application dans le navigateur, nous verrons le cookie dans l'en-tête de réponse.

3. Lire les cookies

Dans Golang, vous pouvez utiliser la méthode Cookie dans la structure Request pour lire les cookies. Cette méthode renvoie un pointeur vers la structure http.Cookie. Si le cookie n'existe pas, renvoie zéro.

L'exemple de code est le suivant :

func getCookie(w http.ResponseWriter, r *http.Request) {
    cookie, err := r.Cookie("name")
    if err != nil {
        http.Error(w, err.Error(), http.StatusBadRequest)
        return
    }
    fmt.Fprintf(w, "Cookie: %v", cookie.Value)
}

Dans le code ci-dessus, nous utilisons la méthode Request.Cookie pour récupérer le cookie nommé "name". Si le cookie n'existe pas, une réponse d'erreur est renvoyée.

4. Supprimer les cookies

Dans Golang, vous pouvez supprimer les cookies en utilisant la même méthode que la configuration des cookies (SetCookie). Cependant, définissez le délai d'expiration du cookie sur une heure antérieure afin que le navigateur n'envoie plus le cookie.

L'exemple de code est le suivant :

func deleteCookie(w http.ResponseWriter, r *http.Request) {
    cookie := &http.Cookie{
        Name:    "name",
        Value:   "",
        Expires: time.Unix(0, 0),
    }
    http.SetCookie(w, cookie)
    fmt.Fprintln(w, "Cookie deleted successfully!")
}

Dans le code ci-dessus, nous définissons un cookie vide nommé "name" et définissons son heure d'expiration sur l'heure passée. Nous l'écrivons ensuite dans ResponseWriter en utilisant la méthode SetCookie. Le navigateur supprimera alors ce cookie stocké sur l'ordinateur de l'utilisateur.

5. Résumé

Cet article explique comment définir, lire et supprimer les cookies dans Golang. La gestion des sessions utilisateur et la maintenance de l'état peuvent être facilement implémentées dans votre application Web à l'aide des méthodes que nous proposons dans cet article. Bonne programmation !

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
Article précédent:tableau golang supprimerArticle suivant:tableau golang supprimer