Les méthodes d'utilisation de Golang pour gérer les cookies HTTP sont : Définir le cookie : utilisez http.Cookie pour définir son nom, sa valeur, son heure d'expiration, son domaine, son chemin, son indicateur de sécurité et son indicateur HttpOnly, puis utilisez http.SetCookie() pour l'ajouter à l'en-tête de la réponse. Obtenez un cookie : utilisez r.Cookie() pour obtenir un cookie avec un nom spécifique, dont la valeur est ensuite accessible à l'aide de son champ Valeur. Suppression du cookie : après avoir récupéré le cookie, définir son champ Expire sur une heure passée et l'ajouter à l'en-tête de réponse supprimera le cookie du navigateur client.
Comment utiliser Golang pour gérer les Cookies HTTP ?
Une façon courante de gérer les cookies HTTP dans Golang consiste à utiliser l'API fournie par le package net/http. Voici les étapes à suivre pour définir, obtenir et supprimer les cookies HTTP :
Définir le cookie
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) }
Obtenir le cookie
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) }
Supprimer le cookie
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) }
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!