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

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

Susan Sarandon
Susan SarandonOriginal
2024-12-21 05:50:12259Durchsuche

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

Setzen von Cookies mit Go's net/http vom Server

Das Setzen von Cookies mit Go's net/http-Paket kann eine unkomplizierte Aufgabe sein. Eine häufige Gefahr besteht jedoch darin, Cookies für das Anforderungsobjekt und nicht für die Antwort zu setzen.

Implementierung

So können Sie ein Cookie mit net/http richtig setzen:

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)
}

Erklärung

Hier Beispiel:

  • http.SetCookie(w, cookie) wird verwendet, um das Cookie zur Antwort hinzuzufügen.
  • Das Cookie wird mit verschiedenen Attributen konfiguriert, wie z. B. Name, Wert, Pfad , Domäne, Ablauf und Sicherheitseinstellungen.
  • fmt.Fprint(w, „Hallo Welt!“) sendet die Antwort an den Client, einschließlich des Satzes Keks.

Das obige ist der detaillierte Inhalt vonWie setze ich Cookies mit dem net/http-Paket von Go richtig?. 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