Heim >Backend-Entwicklung >Golang >Wie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?

Wie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 04:43:18761Durchsuche

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

Cookies mit Net/HTTP vom Server setzen

Dieser Artikel befasst sich mit dem Problem des Setzens von Cookies in Go mithilfe des Net/HTTP-Pakets. Wenn Sie auf Schwierigkeiten stoßen, haben Sie möglicherweise auf Online-Suchen zurückgegriffen, aber unbefriedigende Ergebnisse erhalten.

Sehen wir uns den von Ihnen bereitgestellten Code genauer an:

package main

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

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}}
    req.AddCookie(&cookie)
    io.WriteString(w, "Hello world!")
}

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

Wie in der Antwort, die Sie erhalten haben, hervorgehoben, scheinen Sie dies zu tun Setzen Sie das Cookie auf die Anfrage und nicht auf die Antwort. Zu diesem Zweck stellt net/http eine Methode namens SetCookie zur Verfügung:

func SetCookie(w ResponseWriter, cookie *Cookie)

Um ein Cookie zu setzen, sollten Sie die SetCookie-Funktion wie folgt verwenden:

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,
        MaxAge:  86400, // duration in seconds.
        Secure:  true,
        HttpOnly: true,
    }
    http.SetCookie(w, &cookie)
    io.WriteString(w, "Hello world!")
}

Durch Setzen des Cookies auf Nach der Antwort empfängt der Browser das Cookie und speichert es entsprechend. Dadurch können Sie Benutzersitzungen verfolgen und personalisierte Erlebnisse in Ihrer Webanwendung bereitstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn