使用Golang 管理HTTP Cookie 的方法有:設定Cookie:使用http.Cookie 設定其名稱、值、過期時間、網域、路徑、安全標誌和HttpOnly 標誌,然後使用http.SetCookie() 新增到回應頭上。取得 Cookie:使用 r.Cookie() 來取得特定名稱的 Cookie,然後可以使用它的 Value 欄位存取其值。刪除 Cookie:取得 Cookie 後,將其 Expires 欄位設定為過去的時間,並將其新增至回應頭上,這會將 Cookie 從用戶端瀏覽器中刪除。
如何使用 Golang 管理 HTTP Cookie?
在 Golang 中管理 HTTP cookie 的常見方法是使用 net/http 套件提供的 API。以下是如何設定、取得和刪除HTTP cookie 的步驟:
#設定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) }
取得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) }
############################# ##刪除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) }
以上是如何使用 Golang 管理 HTTP cookie?的詳細內容。更多資訊請關注PHP中文網其他相關文章!