sessionの更新タイミング

phpsession_start(); を実行したあとに、セッションファイルがどのような動きをしているのかを調べました。

1)sessionの有効期限
下記の条件が全て一致したときにサーバ上のセッションファイルが削除されます。
・最終更新から1440秒以上経過した場合(初期設定の場合)
・誰かがサーバにアクセスした時
・1%の確率で削除フラグを引いた場合(初期設定の場合)
必ず1440秒経過したら削除されるわけではないんですね。調べてみるもんです。

2)session_start(); を実行
サーバ上にセッションファイルが新規作成されます。
新規作成されたセッションファイルの中身は空です。
すでにセッションファイルが存在する場合は何もしません。セッションファイルの更新時間が変わることもありません。

3)セッションファイルの有効期限の延長方法
$_SESSION[“xxx”]=$value;
といった命令文で、強制的にセッションファイルの中身を作ってあげれば、セッションファイルが更新され書き換えるタイミングごとに有効期限が延長されます。

4)セッションファイルの中身
平文です。特に暗号化などはかけられていません。

5)セッションの途中でサーバ上からセッションファイルを削除した場合
セッションIDは変わらず、クライアントのセッションIDでサーバにセッションファイルが新規で作成されます。
当たり前ですが、その場合は中身が空のセッションファイルが作成されます。

PHP: session_start – Manual