人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

初歩的な質問だと思うのですが、PHPのセッション機能についての質問です。
「セッションの有効期限」というのは、具体的に何の有効期限なのでしょうか。
サーバに保存されたセッションID?
クライアントのクッキーに保存されたセッションID?
もしくはこれら全部?

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

●質問者: wintarsnow
●カテゴリ:ウェブ制作
✍キーワード:PHP クッキー クライアント サーバ セッション
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● esseesse
●30ポイント

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

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

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

ちなみに、

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

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

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

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

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

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

◎質問者からの返答

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

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

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


2 ● esseesse
●30ポイント

http://www.atmarkit.co.jp/fwin2k/experiments/ie6privacy/ie6priva...

IE 6のプライバシ管理機能 - @IT

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

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

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

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

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

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

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

でした。

ですから、

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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ