サーバーから 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 サイトの他の関連記事を参照してください。