概要
似てるけど、少し違うCookieとSession
大体、データを保存するのは分かりますが、
具体的にCookieとSessionは、何ものか?何の差があるのか?を調べました。
Cookie
Cookieは、
HTTPの一種で、ユーザーがどのようなウェブサイトを訪問する場合、
そのサイトが使用しているサーバーから、ユーザーのパソコンに保存される
小さな履歴情報ファイルです。
HTTPクライアントの状態情報を、クライアントのPCに保存して
必要に応じて情報を参照したり、再利用することができます。
Cookieの特徴
- 名前、Vaule、有効期限(保存期間)、パス情報で構成
- クライアントの合計300個のクッキーを保存することができる。
- 1つのドメインごとに20個のクッキーを持つことができる
- 1つのクッキーは4KB(=4096byte)まで保存可能
Cookieの動作

- クライアントがページを要求する。(ユーザーがWebサイトにアクセス)
- Webサーバーは、クッキーを生成する。
- HTTPヘッダーにクッキーを含ませて応答
- ブラウザが終了されても、クッキーの有効期限がある場合は、クライアントで保管している(ローカルPCに保存)
- 再びサーバーに要求した時、要求と一緒にクッキーを送信する。
- 同じサイトの再訪問時のクライアントのPCに対応するクッキーがある場合には、リクエストページと一緒にクッキーを送信
Session
一定時間の間のようなユーザー(ブラウザ)からの着信を一連の要求を1つの状態で見て、
その状態を一定に維持させる技術です。
ここで、一定時間は、訪問者がWebブラウザを介してWebサーバに接続した時点から、
Webブラウザを終了して、接続を終了時点です。
Sessionの特徴
- WebサーバーにWebコンテナの状態を維持するための情報を格納する。
- Webサーバーに保存されているクッキー(=セッションクッキー)
- ブラウザを閉じるか、サーバーからのSessionを削除した場合にのみ、削除がされるので、Cookieより比較的安全がいい。
- 保存データに制限がない。
- 各クライアント固有のSession IDを付与する。
- Session IDでクライアントを区別して、各クライアントのニーズに合ったサービスを提供
Sessionの動作

- クライアントがページを要求する。(ユーザーがWebサイトにアクセス)
- Webサーバは、アクセスしたクライアントのRequest-HeaderフィールドインCookieを確認して、クライアントがそのSession IDを送信したことを確認する。
- Session IDが存在しない場合、サーバはSession IDを生成してクライアントに返す。
- Webサーバーからクライアントへの返したSession IDをCookieを使ってサーバに保存する。
- クライアントは再接続時には、このCookieを利用して、Session ID値をサーバーに転送
Cookie VS Session
Cookie | Session | |
---|---|---|
保管場所 | クライアント | サーバー |
保存形式 | テキスト | Object |
有効期限 | Cookie保存時の設定 | 正確な時点わからない |
容量制限 | ドメインごとに20個 | 容量制限なし |