最初に
記録用にQiitaに投稿
Sessionとは?
アクセスの開始から終了までの一連の通信のこと。簡単に言えばこんにちはからさよならまで。
基本的にサイトにアクセスしてから一定時間経過し通信が終了します。これを1セッションとします。
セッションにおける一番のポイントは”一連”の通信であることです。
たとえば、あるWebサイトにアクセスして、そのサイト内で3ページを閲覧して離脱したとします。3ページ閲覧したものの、これは一連の通信の中で行われたものなので、1セッションになります。
セッションを識別するためのID(セッションID)を生成し、その内容をCookieに保存します。
このセッションIDにユーザー情報や処理状況を紐付けておき、通信時にCookieに保存したセッションIDを読み取ることで、その通信がどのユーザーからのもので、どういった処理状態にあるのかを把握することが可能になります。
・WebサーバはCookieを受け取ると格納されたセッションIDを元に、メモリ上にあるログイン状態を復元する。
・Cookieと紐づくことで高い安全性が保たれる
Cookieとは?
ブラウザを訪問した際に、ブラウザのデータを記憶しておく仕組みのこと。CookieにはCookie IDが記載されており、そのIDによって固有のブラウザであることを特定しています。
Webサイトにアクセスした時に、WebサーバーからCookieがブラウザに送られ、ブラウザに保存されます。次回同じwebサイトにアクセスした時、ブラウザ上のCookieがWebサーバーに送られ、サーバー側に保存されているユーザー情報とCookieが紐づきます。
・webページでログインした時の情報を保存して次回ログイン時に手間を省いてくれる仕組み
・Cookie内には個人情報などがあるためセキュリティ上危険。そのためセッションにより安全に情報を保持する。
SessionとCookieの違い
・Cookieはブラウザに保存され、セッションはWEBサーバーに保存される。
・sessionはブラウザを閉じた時点で破棄される
・cookieはブラウザにファイルで保存している為、時間制限があるがブラウザを閉じても破棄されない
一度ブラウザを閉じれば、再度ログイン画面に戻ると言った動きに使用できます。