「SESSIONとCookieの違いってなんだろう?」をまとめてみたのと、一緒に利用されているログイン処理についての備忘録。
SESSION とは
サーバー側で保有している、ユーザーと紐ずくデータをサーバー側に一時的に保存できる仕組みの事。
SESSIONが使われる例
複数のページ間で情報を共有する必要がある「ログイン」「アンケートフォーム」などで利用される。
Cookieとは
ブラウザ側で保有している、ユーザーが選択した情報やSESSION IDなどをブラウザ側に一時的に保存できる仕組みの事。
Cookieが使われる例
ブラウザを閉じても一定期間ブラウザ側に保存されるので、ログイン機能と合わせて利用されたり、
オンラインショッピングのカートの中身情報などを保存する目的などで利用される。
PHPのログイン処理
- SESSIONを生成して、サーバー上でSESSION IDを発行する
- SESSIONを生成したブラウザのCookieにSESSION IDを書き込む
- SESSION変数 を SESSION IDとリンクさせてサーバー上に保存する
- ページ移動時はブラウザのCookieからSESSION IDを取り出して、SESSIONを生成したブラウザか判断する(SESSIONの復元)
- SESSIONを生成したブラウザ(同じSESSION IDを持つブラウザ)であれば、サーバー上に保存されているSESSION変数へのアクセスが可能になる
- ログアウト時はサーバー上のSESSION ID、保存されているSESSION変数、ブラウザのCookieに保存されているSESSION IDを削除してSESSIONを終了する
参考サイト
(PHP) SESSIONとCookieの違い【使い方・使い所なども解説】
参考文献
オフィス加減 著 「つくって覚えるPHP入門」 P.166 - 167