「セッションの有効期限」というのは、具体的に何の有効期限なのでしょうか。
サーバに保存されたセッションID?
クライアントのクッキーに保存されたセッションID?
もしくはこれら全部?
ちなみにブラウザを閉じると、有効期限が切れるのと同じことになるのでしょうか。
セッションの有効期限はセッションIDの有効期限になります。
cookieはcookieで別の有効期限があります。
# 有効期限が無いものを永続cookieといいます。
ちなみに、
>ちなみにブラウザを閉じると、有効期限が切れるのと同じことになるのでしょうか。
ブラウザを閉じると有効期限が切れるのではありません。
サーバに対して該当セッションIDのクライアントから一定時間アクセスがないとサーバ側でセッションIDを削除します。
ですから、ブラウザを閉じてすぐ(セッションの有効期限が切れる前)に同じサイトにアクセスすればcookieから取得したセッションIDは残っていますのでセッション情報を引き継ぐことができます。
そして、しばらく時間がたって(セッションが切れて)から同じサイトにアクセスするとcookieから取得して送信したセッションIDは存在しないわけですから、セッション切れとなります。(新たなセッションIDが発行されます)
こんな説明でわかるでしょうか。
http://www.atmarkit.co.jp/fwin2k/experiments/ie6privacy/ie6priva...
IE 6のプライバシ管理機能 − @IT
cookieの有効期限が指定されていない場合は通常はブラウザ終了時にcookieが削除されます。
# この削除処理は実装しなければずーっと有効なcookieになってしまうかもしれません。
cookieの有効期限はサーバ側のプログラムで設定可能ですので、設定されている場合はその時間、設定されていない場合はブラウザ終了時にクリアされます。
あと、すみません、1点誤りがありました。
># 有効期限が無いものを永続cookieといいます。
有効期限が無いもの(設定されていないもの)=一時的なcookie、
有効期限が設定されているもの=永続的なcookie
でした。
ですから、
>クライアントのクッキーは見てみると有効期限が空欄になっているのですが、ブラウザ(MacIE・Safari)を再起動するとクッキーが無くなっています。これはブラウザ依存なのでしょうか。
これは一時的なcookie(サーバ側で有効期限を設定していない)なのでブラウザ再起動時にcookieがクリアされます。
なるほどなるほど。ありがとうございます!
有効期限については理解できました。
セッション初心者なので、また何か躓いて質問しそうです…。
回答ありがとうございます!
サーバのセッションIDの有効期限なのですね。
クライアントのクッキーは見てみると有効期限が空欄になっているのですが、ブラウザ(MacIE・Safari)を再起動するとクッキーが無くなっています。これはブラウザ依存なのでしょうか。