Heim > Artikel > Backend-Entwicklung > Wie verwaltet man HTTP-Cookies mit Golang?
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.
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!