セッションと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を埋め込み、それをサーバが受け取ってユーザを特定する。永続的なデータストアに実際のデータが入っていたりする。情報はサーバが持っている。こちらの方が使われている。

うさぎのログインIdとパスワードを 入力!

サーバが発行したランダムな文字列であるSessionIDをCookieに入れてブラウザに渡される→ユーザがログインするときブラウザからサーバに渡さる→データストアでSessionIDとユーザの照合が行われる→うさぎさんですねという感じです。

まとめ

セッションは複数のリクエストを同一ユーザとして認識することでCookieはブラウザとサーバの通行手形のようなもの!かなり理解できたと思います。業務で出てきてもビビらない程度にはなれた気がする...!

この記事が気に入ったらサポートをしてみませんか?