セッションとCookieについて
セッションとCookieがよくわかってなかったので調べたことをまとめていこうと思います。
参考
https://www.youtube.com/watch?v=EgUgmYLuLYE
セッションとCookieの違い
セッション→目的。複数のリクエストを同一ユーザーと認識すること。
Cookie→手段。セッションにおけるCookieはブラウザとサーバの通行手形のようなもの。
Cookieはサーバが作ってブラウザに渡します。セッションで使われるCookieは主にサーバサイドCookieといい、ブラウザでJavaScriptを使ってCookieを作ることをクライアントサイドCookieといいます。
Cookie4KBの壁
Cookieは4KBまでしか保存できない。
Cookieを使ったセッションの具体的な実現方法
①CookieにユーザIDや会員情報などユーザに関連するデータを入れる。そのままだとユーザが任意に書き換え可能なので、署名付きの暗号化するのが一般的です。情報はブラウザが持っている。
②Cookieにはサーバが発行したランダムのIDを埋め込み、それをサーバが受け取ってユーザを特定する。永続的なデータストアに実際のデータが入っていたりする。情報はサーバが持っている。こちらの方が使われている。
サーバが発行したランダムな文字列であるSessionIDをCookieに入れてブラウザに渡される→ユーザがログインするときブラウザからサーバに渡さる→データストアでSessionIDとユーザの照合が行われる→うさぎさんですねという感じです。
まとめ
セッションは複数のリクエストを同一ユーザとして認識することでCookieはブラウザとサーバの通行手形のようなもの!かなり理解できたと思います。業務で出てきてもビビらない程度にはなれた気がする...!