Bagaimana untuk mengurus kuki HTTP menggunakan Golang?

WBOY
Lepaskan: 2024-06-01 09:41:56
asal
1088 orang telah melayarinya

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

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)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengurus kuki HTTP menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!