Cookieとセッションとその関係性

HTTPの性質はステートレス

<ステートレス>

・情報を保持し続けることができないため、リクエストごとに情報がリセットされてしまう。

・状態を維持することができない。

1回目でのやりとりが2回目には忘れられてしまう。

 →Cookieやセッションが必要になる。

 

<Cookie>

・ブラウザ側に保存される小さな情報や領域。

 

<セッション>

・サーバー側で一時的に保持できる情報。

・厳密には、Cookieに情報を預けている。

 

Cookieセッションの関係(ログイン機能の場合)

Cookie とセッションにユーザの情報を持たせることでHTTPリクエストに繋がりを持たせることができる

 

↓会話形式でのイメージ

☆ログイン段階

ユーザー { ログインページを表示してください。

サーバー { どうぞ。

ユーザー {メールアドレスとパスワードです。

サーバー {受け取りました。本当に合っているか確かめます。合っていたので、送られてきた情報はセッションに入れておきます。また、Cookie、セッションのIDを保存してください。

ユーザー{(ログインできた際のページへ移動)。セッションIDをCookieに保存します!

☆いいね!等をする段階

サーバ{いいねします!(リクエストを送ると同時にCookieの情報を送る)

ユーザー{送られてきたセッションのIDから該当する人がいるか探します。ちょっと毎回、IDからとってくるのは大変ですね…。current_userを定義して、処理をしやすくしましょう。

 

ここまで一連の流れにすることができる。