投稿数 585
公開から 2940

【PHP】セッション仕組み


Categories: basic-php 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