Maison >développement back-end >Golang >Comment définir correctement les cookies à l'aide du package net/http de Go ?

Comment définir correctement les cookies à l'aide du package net/http de Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 05:50:12264parcourir

How to Correctly Set Cookies Using Go's net/http Package?

Définir des cookies avec le package net/http de Go à partir du serveur

Définir des cookies avec le package net/http de Go peut être une tâche simple. Cependant, un piège courant consiste à tenter de définir des cookies sur l'objet de requête, plutôt que sur la réponse.

Mise en œuvre

Voici comment définir correctement un cookie à l'aide de net/http :

package main

import (
    "fmt"
    "net/http"
    "time"
)

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := &http.Cookie{
        Name:     "test",
        Value:    "tcookie",
        Path:     "/",
        Domain:   "www.domain.com",
        Expires:  expire,
        RawExpires:  expire.Format(time.UnixDate),
        MaxAge:     86400,
        Secure:     true,
        HttpOnly:   true,
        SameSite:    http.SameSiteStrictMode,
        Raw:          "test=tcookie",
        Unparsed: []string{"test=tcookie"},
    }

    http.SetCookie(w, cookie) // Set the cookie on the response
    fmt.Fprint(w, "Hello world!")
}

func main() {
    http.HandleFunc("/", indexHandler)
    http.ListenAndServe(":80", nil)
}

Explication

Dans ce exemple :

  • http.SetCookie(w, cookie) est utilisé pour ajouter le cookie à la réponse.
  • Le cookie est configuré avec divers attributs, tels que le nom, la valeur, le chemin , domaine, expiration et paramètres de sécurité.
  • fmt.Fprint(w, "Hello world!") envoie la réponse au client, y compris l'ensemble biscuit.

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