2016-06-28 5 views
0

私は私のstackoverflowアカウントにログインすると、おそらくstackoverflow私のためのログインセッションを作成します。これは次のようなものです:サーバーはセッションごとにデバイスをどのように識別しますか?

$_SESSION['login'] = 1; 

このセッションは特定のデバイスでのみ利用できます。だから、私はそのことに基づいて私のデバイスを認識するstackovetflowのサーバー上に私のデバイスのものがあると思う。

すべての私の質問は何ですか?私のデバイスのどのパラメータがサーバに保存されますか?言い換えれば、特定のデバイスのためにセッションがどのように機能するのでしょうか?

+0

デバイスだけでなく、別のブラウザでも動作します。 – C2486

+0

@Rishiいいえ、それは当てはまりません。Chromeでstackoverflowにログインすると、** IEやFireFoxにログインできなくなります**。 –

+0

クッキーにランダムな値が設定されています。これは、ブラウザとサーバーの共通の識別子です。 http://stackoverflow.com/questions/7298974/how-the-session-work-in-asp-net –

答えて

1

セッションが作成されると、デフォルトでセッションキーと呼ばれる文字列によって識別されます。 PHPのデフォルトでは、これはクッキーとしてPHPSESSIDの名前で保存されます。例えばPHPSESSID = absuk44ocvs55mkp6eh1gh58q3

このキーを使用してセッション情報を読み込むことができます。セッション情報は、例えば、ファイル。

セッションIDは、クライアントによって複数の方法で使用/保存できます。 PHPでは、URLでのセッションの使用だけでなく、クッキー内でのセッションの使用もサポートしているようです。クッキーはdisabledでもかまいませんが。

phpに基づいた特定のウェブサイトは、関連するデータをファイル以外の方法で保存することもあります。例えばデータベースに格納する人もいます。

しかし、ほとんどの場合、一部のデータはユーザーを追跡するために使用されるCookieに格納されます。

あなたのコード例:

$_SESSION['login'] = 1; 

は、変数を設定する前にsession_start()を必要とするでしょう。 これは、(既存の有効なセッションIDに基づいて)セッションをロードするか、新しいセッション(ランダムセッションID、または構成に応じて渡されたセッションID)を作成します。 'ログイン'と値はサーバー上にローカルに保存されます。

次回クライアントが接続すると、セッションIDが読み取られ、このセッションIDに基づいて$ _SESSIONに格納されたデータを取得できます。

+0

ありがとう.. upvote –

関連する問題