初めに。
sessionとcookieの違いが明確にわからなかったので、自分用のメモ&アウトプットとして残します。
session
セッション(session)は、webサイトを訪れた個々のユーザーのデータを個別に維持することによって、ユーザーとWebサーバー間の状態を管理する仕組みを提供します。セッションを利用することで、各ユーザー毎に、連続するリクエストにまたがって特定のデータを保持することで、ステートフル(状態を保持する)なWebサービスの構築が可能になります。
cookie
クッキー(cookie)とはデバイスでWebサイトのWebサーバーへアクセスすると付与される、小さなテキストファイルのこと。CookieにはIDやWebサイトの閲覧情報などが記録され、一時的にユーザー情報を保存することができる。
それぞれの特徴
sessionの特徴
- WebサーバーにWebコンテナの状態を維持するための情報を格納する。
- Webサーバーに保存されているクッキー(=セッションクッキー)
- ブラウザを閉じるか、サーバーからのSessionを削除した場合にのみ、削除がされるので、Cookieより比較的安全性がいい。
- 保存データに制限がない。
- 各クライアント固有のSession IDを付与する。
- Session IDでクライアントを区別して、各クライアントのニーズに合ったサービスを提供
cookieの特徴
- 名前、Value、有効期限(保存期間)、パス情報で構成
- 何度もログインする手間がかからない
- 企業側はマーケティング施策に役立てることができる
- クライアントの合計300個のクッキーを保存することができる。
- 1つのドメインごとに20個のクッキーを持つことができる
- 1つのクッキーは4KB(=4096byte)まで保存可能
どう違うか
クッキーはクライアント側のマシン(主にブラウザ)にのみ保存され、セッションはブラウザだけでなく、サーバーにも情報が保存されます。
また、保存の期間にも大きな違いがあり、セッションはユーザーがブラウザを閉じるか、サイトを離れると情報が削除されます。 一方、クッキーには永続クッキーがあり、情報を保持し続けます。
-
保管場所
- session->サーバー
- cookie->クライアント
-
保存形式
- session->Object
- cookie->テキスト
-
有効期限
- session->正確な時点はわからない
- cookie->設定時に任意の設定
-
容量制限
- session->容量制限なし
- cookie-> ドメインごとに20個