Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengurus kuki HTTP menggunakan Golang?

Bagaimana untuk mengurus kuki HTTP menggunakan Golang?

WBOY
WBOYasal
2024-06-01 09:41:561127semak imbas

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.

如何使用 Golang 管理 HTTP cookie?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn