Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwaltet man HTTP-Cookies mit Golang?

Wie verwaltet man HTTP-Cookies mit Golang?

WBOY
WBOYOriginal
2024-06-01 09:41:561123Durchsuche

Methoden zur Verwendung von Golang zum Verwalten von HTTP-Cookies sind: Cookie festlegen: Verwenden Sie http.Cookie, um seinen Namen, Wert, Ablaufzeit, Domäne, Pfad, Sicherheitsflag und HttpOnly-Flag festzulegen, und verwenden Sie dann http.SetCookie(), um es hinzuzufügen Der Antwortheader. Holen Sie sich ein Cookie: Verwenden Sie r.Cookie(), um ein Cookie mit einem bestimmten Namen abzurufen, auf dessen Wert dann über das Feld „Wert“ zugegriffen werden kann. Löschen des Cookies: Nachdem Sie das Cookie abgerufen haben, wird das Cookie aus dem Client-Browser gelöscht, indem Sie das Feld „Abgelaufen“ auf einen Zeitpunkt in der Vergangenheit setzen und es zum Antwortheader hinzufügen.

如何使用 Golang 管理 HTTP cookie?

Wie verwende ich Golang zum Verwalten von HTTP-Cookies?

Eine gängige Methode zum Verwalten von HTTP-Cookies in Golang ist die Verwendung der API, die vom Paket net/http bereitgestellt wird. Hier sind die Schritte zum Setzen, Abrufen und Löschen von HTTP-Cookies:

Cookie setzen

package main

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

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 设置名为 "session_id" 的 cookie,并将它的值设置为 "some-uuid"
        cookie := &http.Cookie{
            Name: "session_id",
            Value: "some-uuid",
        }
        // 设置 cookie 的过期时间
        cookie.Expires = time.Now().Add(24 * time.Hour)
        // 设置 cookie 的域(默认为当前请求的域)
        cookie.Domain = "example.com"
        // 设置 cookie 的路径(默认为 "/")
        cookie.Path = "/"
        // 设置 cookie 的安全标志(默认为 false)
        cookie.Secure = true
        // 设置 cookie 的 HttpOnly 标志(默认为 false)
        cookie.HttpOnly = true

        // 将 cookie 添加到响应头上
        http.SetCookie(w, cookie)
        fmt.Fprint(w, "Cookie set successfully")
    })

    http.ListenAndServe(":8080", nil)
}

Cookie abrufen

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 获取名为 "session_id" 的 cookie
        cookie, err := r.Cookie("session_id")
        if err != nil {
            fmt.Fprint(w, "Cookie not found")
            return
        }

        // 打印 cookie 的值
        fmt.Fprint(w, "Cookie value:", cookie.Value)
    })

    http.ListenAndServe(":8080", nil)
}

Cookie löschen

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 获取名为 "session_id" 的 cookie
        cookie, err := r.Cookie("session_id")
        if err != nil {
            fmt.Fprint(w, "Cookie not found")
            return
        }

        // 设置 cookie 的过期时间为过去,从而删除它
        cookie.Expires = time.Now().Add(-1 * time.Second)

        // 将 cookie 添加到响应头上
        http.SetCookie(w, cookie)
        fmt.Fprint(w, "Cookie deleted successfully")
    })

    http.ListenAndServe(":8080", nil)
}

Das obige ist der detaillierte Inhalt vonWie verwaltet man HTTP-Cookies mit Golang?. 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