2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

概要

似てるけど、少し違うCookieとSession
大体、データを保存するのは分かりますが、
具体的にCookieとSessionは、何ものか?何の差があるのか?を調べました。

Cookie

Cookieは、
HTTPの一種で、ユーザーがどのようなウェブサイトを訪問する場合、
そのサイトが使用しているサーバーから、ユーザーのパソコンに保存される
小さな履歴情報ファイルです。

HTTPクライアントの状態情報を、クライアントのPCに保存して
必要に応じて情報を参照したり、再利用することができます。

Cookieの特徴

  • 名前、Vaule、有効期限(保存期間)、パス情報で構成
  • クライアントの合計300個のクッキーを保存することができる。
  • 1つのドメインごとに20個のクッキーを持つことができる
  • 1つのクッキーは4KB(=4096byte)まで保存可能

Cookieの動作

2.png
  1. クライアントがページを要求する。(ユーザーがWebサイトにアクセス)
  2. Webサーバーは、クッキーを生成する。
  3. HTTPヘッダーにクッキーを含ませて応答
  4. ブラウザが終了されても、クッキーの有効期限がある場合は、クライアントで保管している(ローカルPCに保存)
  5. 再びサーバーに要求した時、要求と一緒にクッキーを送信する。
  6. 同じサイトの再訪問時のクライアントのPCに対応するクッキーがある場合には、リクエストページと一緒にクッキーを送信

Session

一定時間の間のようなユーザー(ブラウザ)からの着信を一連の要求を1つの状態で見て、
その状態を一定に維持させる技術です。

ここで、一定時間は、訪問者がWebブラウザを介してWebサーバに接続した時点から、
Webブラウザを終了して、接続を終了時点です。

Sessionの特徴

  • WebサーバーにWebコンテナの状態を維持するための情報を格納する。
  • Webサーバーに保存されているクッキー(=セッションクッキー)
  • ブラウザを閉じるか、サーバーからのSessionを削除した場合にのみ、削除がされるので、Cookieより比較的安全がいい。
  • 保存データに制限がない。
  • 各クライアント固有のSession IDを付与する。
  • Session IDでクライアントを区別して、各クライアントのニーズに合ったサービスを提供

Sessionの動作

5.png
  1. クライアントがページを要求する。(ユーザーがWebサイトにアクセス)
  2. Webサーバは、アクセスしたクライアントのRequest-HeaderフィールドインCookieを確認して、クライアントがそのSession IDを送信したことを確認する。
  3. Session IDが存在しない場合、サーバはSession IDを生成してクライアントに返す。
  4. Webサーバーからクライアントへの返したSession IDをCookieを使ってサーバに保存する。
  5. クライアントは再接続時には、このCookieを利用して、Session ID値をサーバーに転送

Cookie VS Session

Cookie Session
保管場所 クライアント サーバー
保存形式 テキスト Object
有効期限 Cookie保存時の設定  正確な時点わからない
容量制限 ドメインごとに20個  容量制限なし
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?