CookieとSessionの違いを簡単にまとめます[備忘録]


はじめに

通常、WEBページで入力された情報は前回どんなリクエストがあったかなどの情報は保持していません。これをストーレスと呼びます。ストー(状態)レス(無い)ということらしいです。

ですが、実際のWEBサイトは自動ログインや前回のログイン情報を保持している機能があります。
もう少しわかりやすくいうと、facebookやtwitterなどはログインしている状態でないと投稿機能が利用できませんので、ログイン情報を持っています。

本来WEBはストーレスの状態ですが、なぜ現実にWEBはログイン情報を保持しているのでしょうか?

Cookieを使用する

ログインは「Cookie」という機能を使用します。
ブラウザに保存されているテキストデータのことで、別ページへ移動した際にもログイン情報を破棄することはありません。

つまり、さきほど紹介したfacebookやtwitter等はCookieを使用することでログイン機能を保持したまま別ページへ移動できるのです。

Sessionを使用する

Cookieには弱点があります。それはCookieはクライアント側に依存するため悪意ある人間であればデータ改ざんし、乗っとることができてしまいます。

そこで、Sessionを使用します。
Sessionは情報がサーバー側に依存し、暗号化した情報をクライアント側にCookieとして保存する方法を採用しています。

ただし、Sessionも完全にはなりすましを防ぐことができるわけではありませんので、開発者は日々セキュリティに敏感になる必要があります。