contentみんたくみんたくの技術ブログGoで学ぶCookie操作(設定・送信・取得)まとめ2020年7月18日GoGoにおけるCookie操作(設定・送信・取得)について気になったので、本やネットで調べて自分なりにまとめてみました。cookie」でWebサイトへアクセスした際に、ユーザのデバイス(PCやスマホ)に残していくデータのことです。サーバからHTTPレスポンスメッセージを通して送られるもので、クライアントに保管されます。次回以降はCookieとともにWebサーバーへアクセスするため、ユーザが保持していたCookieにあわせてページを表示することができます。分類としてはセッションクッキーと永続性クッキーの2種類に分けられます。Cookieは以下のような構造体になっています。基本的にはhttp.Cookie型へのポインタ変数を用意し、NameフィールドにCookie名、ValueフィールドにCookieの値を入れて設定します。pairs}ExpiresとMaxAgeフィールドをしているすることで有効期限を設定することができます。Expiresフィールドは、Cookieの期限切れとなるtime.Time型を指定します。24時間後に期限切れMaxAgeフィールドは、ブラウザ内で生成されてからどれだけの期間有効かを指定します。1時間後に期限切れExpiresはほぼ全てのブラウザに対応しているが、HTTP1.1以降では非推奨となり、MaxAgeが推奨されています。MaxAgeはIE6、7、8で対応されていません。参考:https://golang.org/pkg/net/http/#CookieCookieの設定・送信http.Cookie型へのポインタ変数を用意し、それぞれのフィールドに値を入れ、http.ResponseWriterとcookieを引数にセットします。cookie)実際に使われる例として、ユーザログイン時にCookieを生成する場合だと以下のような流れになります。メールアドレスとパスワードがPOSTされ、メールアドレスからユーザが存在するかをチェックします。ここでのdata.UserByEmailメソッド(処理は省略)はメールアドレスからユーザを取得してきています。次にPOSTされたパスワードが取得したユーザのパスワードと一致しているかをチェックし、user.CreateSession()メソッド(処理は省略)でサーバ側で持つセッションを生成してセッションテーブルにインサートします。その後、Cookieをセットしログイン後のページにリダイレクトさせます。"ユーザが見つかりませんでした。"セッションを生成することができません。構造体RequestのCookieメソッドを使用して、HTTPリクエストからのCookieを取得できます。指定したCookieが存在しない場合はエラーを返します。複数のCookieを取得したい場合は、Cookiesを使うことで全てのCookieをスライスに入れて取得できます。cookie.ValueでCookieの値を取得することができます。cookie.Value}実際に使われる例として、クライアントとサーバ間でのCookieのやりとりの場合、以下のような流れになります。request.Cookie()メソッド(処理は省略)でCookieを取得し、Session構造体にセットします。その後、送られてきたセッションをチェックし、無効の場合はエラーにします。errors.New("セッションが無効です")}}return}GoにおけるCookie操作についてのまとめでした。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。