セッションとCookie
今回はRailsでログイン機能を作るときに学んだセッションとCookieについて書いていこうと思います。セッション
WebアプリケーションではブラウザからサーバへHTTPリクエストを送り、HTTPレスポンスを受け取って表示する。 このHTTPリクエストを繰り返し行うことで順番に操作を行っていく。 しかし、HTTPはステートレス(*1)なプロトコルなので、 そのままでは、同じユーザーから送られた1つ目のリクエストから2つ目のリクエストに情報を引き継ぐことができない。 (例えば、ユーザー登録情報画面に個人情報を記載して登録ボタンを押したが必須のところの書き忘れがあると 初めから記入し直さなくてはいけないなど。) そのため、Webアプリケーションではサーバー側にセッションと言う仕組みを用意して、 1つのブラウザから連続して送られている一連のリクエストの間で、「状態」を共有できるようにしている。 Railsでは、コントローラからsessionと言うメソッドを呼び出すことで、セッションにアクセスできる。 sessionはハッシュのように扱うことができる。 セッションをデータを入れるには、任意のキーを指定して値を格納します。session[:user_id] = @user.id
値を取り出すには次のように参照する。
@user_id = session[:user_id]
Cookie
セッションに似た仕組みとしてCookieがある。 セッションはアプリケーションサーバー側で独自に実現される仕組みであるのに対して CookieはブラウザとWebサーバの間でやり取りされる、より汎用的な仕組み。 Cookie情報は、キーと値のペアの集合。*1 ステートレスとは?
https://qiita.com/wind-up-bird/items/b210e294ecb147d67e2b