ホームページ > バックエンド開発 > Golang > Go の net/http パッケージを使用して Cookie を正しく設定するにはどうすればよいですか?

Go の net/http パッケージを使用して Cookie を正しく設定するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-10 04:43:18
オリジナル
800 人が閲覧しました

How Can I Correctly Set Cookies Using Go's net/http Package?

サーバーから Net/HTTP を使用して Cookie を設定する

この記事では、net/http パッケージを使用して Go で Cookie を設定する問題について説明します。問題に遭遇したときに、オンライン検索に頼ったものの、満足のいく結果が得られなかったかもしれません。

提供されたコードを詳しく調べてみましょう:

package main

import (
    "io"
    "net/http"
    "time"
)

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}}
    req.AddCookie(&cookie)
    io.WriteString(w, "Hello world!")
}

func main() {
    http.HandleFunc("/", indexHandler)
    http.ListenAndServe(":80", nil)
}
ログイン後にコピー

受け取った応答で強調表示されているように、あなたは次のことを行っているようです。応答ではなく要求に Cookie を設定します。この目的のために、net/http は SetCookie と呼ばれるメソッドを提供します。

func SetCookie(w ResponseWriter, cookie *Cookie)
ログイン後にコピー

Cookie を設定するには、次のように SetCookie 関数を使用する必要があります。

func indexHandler(w http.ResponseWriter, req *http.Request) {
    expire := time.Now().AddDate(0, 0, 1)
    cookie := http.Cookie{
        Name:    "test",
        Value:   "tcookie",
        Path:    "/",
        Domain:  "www.domain.com",
        Expires: expire,
        MaxAge:  86400, // duration in seconds.
        Secure:  true,
        HttpOnly: true,
    }
    http.SetCookie(w, &cookie)
    io.WriteString(w, "Hello world!")
}
ログイン後にコピー

Cookie をオンに設定することで、応答すると、ブラウザは Cookie を受信し、それに応じて保存します。これにより、ユーザー セッションを追跡し、Web アプリケーションでパーソナライズされたエクスペリエンスを提供できるようになります。

以上がGo の net/http パッケージを使用して Cookie を正しく設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート