Cookieとセッションとその関係性
HTTPの性質はステートレス
<ステートレス>
・情報を保持し続けることができないため、リクエストごとに情報がリセットされてしまう。
・状態を維持することができない。
1回目でのやりとりが2回目には忘れられてしまう。
→Cookieやセッションが必要になる。
<Cookie>
・ブラウザ側に保存される小さな情報や領域。
<セッション>
・サーバー側で一時的に保持できる情報。
・厳密には、Cookieに情報を預けている。
♡Cookieとセッションの関係(ログイン機能の場合)
・Cookie とセッションにユーザの情報を持たせることでHTTPリクエストに繋がりを持たせることができる
↓会話形式でのイメージ
☆ログイン段階
ユーザー { ログインページを表示してください。
サーバー { どうぞ。
ユーザー {メールアドレスとパスワードです。
サーバー {受け取りました。本当に合っているか確かめます。合っていたので、送られてきた情報はセッションに入れておきます。また、Cookie、セッションのIDを保存してください。
ユーザー{(ログインできた際のページへ移動)。セッションIDをCookieに保存します!
☆いいね!等をする段階
サーバー{いいねします!(リクエストを送ると同時にCookieの情報を送る)
ユーザー{送られてきたセッションのIDから該当する人がいるか探します。ちょっと毎回、IDからとってくるのは大変ですね…。current_userを定義して、処理をしやすくしましょう。
ここまで一連の流れにすることができる。