web-dev-qa-db-ja.com

セッションはどこに保存されますか?

PHPセッションデータが保存されている場所を知りたいです。クライアントブラウザにありますか、それともサーバーにありますか?

ブラウザ設定でCookieを無効にすると、PHPはセッションデータを保存できませんが、php.ini、セッションの保存パスを変更できます。

セッションデータはサーバーまたはクライアントブラウザーに保存されますか?

39
Moein Hosseini

セッションdata$_SESSIONを使用して読み書きするセッションは、サーバー側、通常は一時ディレクトリのテキストファイルに保存されます。外部からはアクセスできません。

セッションをクライアントブラウザーに接続するのはセッション[〜#〜] id [〜#〜]で、通常はCookieに保存されます(そのルールの例外についてはコメントをご覧ください)。このIDは、クライアント側に保存されるセッションに関する唯一のものです。

ブラウザでCookieを削除すると、サーバー上のファイルがしばらく存在し続けても、そのセッションへの接続は失われます。

session.save_path変数は、場所に影響しますサーバー上セッションデータが保存されている場所。サーバーの管理者でない場合、通常は変更する必要はありません。

75
Pekka 웃

両方だ!セッションは実際のセッション情報をサーバーに保存しますが、識別Cookieをクライアントに提供して、どのセッションがどのクライアントに属しているかを認識します。 Cookie自体の情報は価値がありませんが、サーバーがクライアントを識別し、実際のセッション情報を使用できるようにします。

11
deceze

Blockquote「セッションデータはサーバーまたはクライアントのブラウザーに保存されますか?」

係員付き駐車システムについて考えさせられます。バレット(サーバー)はあなたの車(セッションデータ)を保持しますが、彼/彼女はあなたにハングアップするためのチケット(セッションID)を提供します。キャッシュを削除したり、ブラウザを閉じたりしてチケットを紛失した場合、車であることを証明できないため、車(セッションデータ)は消えてしまいます。

さて、それは単なるアナロジーです...そしてすぐに壊れます。例えば。車のようにセッション情報を実際に所有しているわけではありません。そして、あなたはそれを追い払うことはできません。

5
Ben

両方とも、クライアント(ブラウザー)のセッションはCookieとして保存されます。このCookieは、サーバー上にも存在するセッションを参照します。

4
Nick Weaver

セキュリティを維持するためにサーバー側に保存されます。ただし、追加のCookieをクライアント側に保存することもできます。

1
user3448362