Kaedah untuk menggunakan Golang untuk mengurus Kuki HTTP ialah: Tetapkan Kuki: Gunakan http.Kuki untuk menetapkan nama, nilai, masa tamat tempoh, domain, laluan, bendera keselamatan dan bendera HttpOnly, dan kemudian gunakan http.SetCookie() untuk menambahkannya pada tajuk respons. Dapatkan Kuki: Gunakan r.Cookie() untuk mendapatkan kuki dengan nama tertentu, yang nilainya kemudiannya boleh diakses menggunakan medan Nilainya. Memadamkan kuki: Selepas mendapatkan semula kuki, menetapkan medan Tamat Tempohnya kepada masa yang lalu dan menambahkannya pada pengepala respons akan memadamkan kuki daripada penyemak imbas klien.
Bagaimana cara menggunakan Golang untuk mengurus Kuki HTTP?
Cara biasa untuk mengurus kuki HTTP di Golang ialah menggunakan API yang disediakan oleh pakej net/http. Berikut ialah langkah bagaimana untuk menetapkan, mendapatkan dan memadam kuki HTTP:
Set 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) }
Dapatkan 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) }
Padam Kuki
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) }
Atas ialah kandungan terperinci Bagaimana untuk mengurus kuki HTTP menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!