【PHP】セッション仕組み
いきさつ
ユーザー認証とかするやつですね。 おさらいしといたほうがいい感じになりました。
ざっくり
- 一般的にセッションが作成されると、セッションIDがユーザーに送信されます。(セッションIDをサーバー側にも保存します)
- Cookie(デフォルトではPHPSESSIDと呼ばれます)に保存されます
- そのCookieは、リクエストごとにブラウザからサーバーに送信されます
- サーバー(PHP)は、session_idを含むCookieを使用して、どのファイルがそのユーザーに対応するかを認識します。
- セッションファイル内のデータは、シリアル化された$ _SESSIONのコンテンツです(つまり、文字列として表されます-シリアル化などの関数を使用)。 また、ファイルがPHPによってロードされると、$ _ SESSION配列に入力するためにシリアル化されません。
詳しくは
公式が優しいです。 http://php.net/manual/en/book.session.php
ここも。 セッションIDがページからページへ、Cookieを使用してどのように渡されるかを説明します。 https://www.php.net/manual/en/session.idpassing.php
感想
…ということでログイン系のサービスを確認してみると、 ちゃーんとログイン後にindexを開く場合のリクエストヘッダに謎のCookieが仕込まれていることが確認できます。 案外単純です。
参考
https://stackoverflow.com/questions/1535697/how-do-php-sessions-work-not-how-are-they-used