Cookieとかセッションとか【メモ】


Cookie

  • クライアント側にデータを送信して、ブラウザに保存させる
  • 大きなデータは保存できない(大体8kb)
  • クライアントから見える→第三者による書き換えが簡単
  • クライアント側のみに保存するため、サーバのメモリやディスク消費はない
  • 同じドメインのサイト単位で送信するので、ページ間でのデータ共有が実現できる
  • 有効期限がある(設定可能)
  • 有効期限がない場合はブラウザを閉じると失くなる(セッションCookie)
  • 有効範囲が設定できる

仕組み

サーバからクライアントへ、Set-Cookie:名称=データというヘッダ情報を送信する。
次のそのサーバへアクセスした場合に、Cookieを送信データに追加してアクセスする。

セッション

  • サーバ側にデータを保存する
  • ユーザーごとに用意されるサーバ上のデータ保存領域
  • クライアントから見えない→第三者による書き換えが難しい
  • 大量のデータを保存できるが、メモリやディスク容量によってはパフォーマンスが悪化する
  • 一定時間利用されなかった場合、保存領域を開放する(時間は設定可能)→DBのように永久的に保存するわけではない

仕組み

アクセスしてきたクライアントごとにセッションIDというランダム文字列を渡して、クライアントを識別
セッションIDごとにデータの保存領域を割り当てる。

Cookieとセッションの使いみちはどうすべき??

両方とも一時的な保存領域なので、重要な情報はなるべく持たせない(消えても影響度が低い情報を持たせる)のがいいのかな……?