初歩的な質問だと思うのですが、PHPのセッション機能についての質問です。

「セッションの有効期限」というのは、具体的に何の有効期限なのでしょうか。
サーバに保存されたセッションID?
クライアントのクッキーに保存されたセッションID?
もしくはこれら全部?

ちなみにブラウザを閉じると、有効期限が切れるのと同じことになるのでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:esseesse No.1

回答回数192ベストアンサー獲得回数0

ポイント30pt

セッションの有効期限はセッションIDの有効期限になります。

cookieはcookieで別の有効期限があります。

# 有効期限が無いものを永続cookieといいます。

ちなみに、

>ちなみにブラウザを閉じると、有効期限が切れるのと同じことになるのでしょうか。

ブラウザを閉じると有効期限が切れるのではありません。

サーバに対して該当セッションIDのクライアントから一定時間アクセスがないとサーバ側でセッションIDを削除します。

ですから、ブラウザを閉じてすぐ(セッションの有効期限が切れる前)に同じサイトにアクセスすればcookieから取得したセッションIDは残っていますのでセッション情報を引き継ぐことができます。

そして、しばらく時間がたって(セッションが切れて)から同じサイトにアクセスするとcookieから取得して送信したセッションIDは存在しないわけですから、セッション切れとなります。(新たなセッションIDが発行されます)

こんな説明でわかるでしょうか。

id:wintarsnow

回答ありがとうございます!

サーバのセッションIDの有効期限なのですね。

クライアントのクッキーは見てみると有効期限が空欄になっているのですが、ブラウザ(MacIE・Safari)を再起動するとクッキーが無くなっています。これはブラウザ依存なのでしょうか。

2004/10/09 19:07:07
id:esseesse No.2

回答回数192ベストアンサー獲得回数0

ポイント30pt

cookieの有効期限が指定されていない場合は通常はブラウザ終了時にcookieが削除されます。

# この削除処理は実装しなければずーっと有効なcookieになってしまうかもしれません。

cookieの有効期限はサーバ側のプログラムで設定可能ですので、設定されている場合はその時間、設定されていない場合はブラウザ終了時にクリアされます。

あと、すみません、1点誤りがありました。

># 有効期限が無いものを永続cookieといいます。

有効期限が無いもの(設定されていないもの)=一時的なcookie、

有効期限が設定されているもの=永続的なcookie

でした。

ですから、

>クライアントのクッキーは見てみると有効期限が空欄になっているのですが、ブラウザ(MacIE・Safari)を再起動するとクッキーが無くなっています。これはブラウザ依存なのでしょうか。

これは一時的なcookie(サーバ側で有効期限を設定していない)なのでブラウザ再起動時にcookieがクリアされます。

id:wintarsnow

なるほどなるほど。ありがとうございます!

有効期限については理解できました。

セッション初心者なので、また何か躓いて質問しそうです…。

2004/10/09 19:49:44

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • phaのPHPとか自習室 - [CakePHP]セッション phaのPHPとか自習室 2008-04-28 23:38:54
    [CakePHP]セッション 『CakePHP』を使ってみる 〜11〜 セッションの使い方確認 - ざ・わーるど.jp@はてな 初歩的な質問だと思うのですが、PHPのセッション機能についての質問です。 「セッショ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません