ホームページ  >  記事  >  バックエンド開発  >  Golang を使用して HTTP Cookie を管理するにはどうすればよいですか?

Golang を使用して HTTP Cookie を管理するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-01 09:41:561091ブラウズ

Golang を使用して HTTP Cookie を管理する方法は次のとおりです: Set Cookie: http.Cookie を使用してその名前、値、有効期限、ドメイン、パス、セキュリティ フラグ、および HttpOnly フラグを設定し、次に http.SetCookie() を使用してそれを追加します。応答ヘッダー。 Cookie を取得する: r.Cookie() を使用して、特定の名前を持つ Cookie を取得します。その後、その Value フィールドを使用してその値にアクセスできます。 Cookie の削除: Cookie を取得した後、その Expires フィールドを過去の時刻に設定し、それを応答ヘッダーに追加すると、クライアント ブラウザーから Cookie が削除されます。

如何使用 Golang 管理 HTTP 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。