絶対完全無料ツールの紹介

エンジニア目線のブログです

#4 セッションの仕組みや使う目的 意外と経験者でも理解していない部分

youtu.be

今回はセッションの説明です。
Webサイトにログインして、マイページが見れたり
買い物などができるのもセッションのおかげです。

セッションとはCookieとサーバー各々に同じキーのデータを
持ちユーザーを識別する仕組みです。

Cookieを知らないといけないので、Cookieを説明すると

この画像のようにGoogle Developer Toolを開いて
Applicationタブを開くと、左にStorageの欄にCookieのアイコンを
クリックすると各ドメインが見えます。それを選択すると
左からName, Value, Domainと並んでいます。

このName, Valueのデータが毎回アクセスする度にサーバーに渡されます。

このCookieデータの登録、削除の方法は色々ありますが、
基本的にサーバー側(PHPJavaRuby等)で行います。

試しに、PHPでuser_idというNameにkomatsuというValueを設定してみます。
この状態のページにアクセスすると先程のgoogle developer toolに
設定した値がある事が確認できます。

それを踏まえたうえで簡単なログインページとログイン後の
マイページを作ってみましょう。

redisなどでセッション管理するのが一般的ですが、わかりやすく
ファイルにセッションデータを登録する方法で実装してみます。
セッションファイルにCoookieのValueのデータを保存するように開発します。

ランダムの値をCookieのNameのデータにして、セッションファイルの
ファイル名にしています。

ランダム関数がまちがっているようです。

Storage をインポートしないといけないみたいです。

ログインボタンを押すとcookieに値が登録されているのを確認できます。

cookieの値とストレージにあるファイル名が同じ事を確認しています。

ファイルの中身のデータを確認します。

cookieのuser_idのデータを確認します。

DBのt_usrテーブルのkomatsu1がusr_nameでそれをキーに
usr_name_mbのデータseijiroがある事を確認します。

seijiroのデータが確認できました。
seijiroはDBにしかないデータなので、DBからの取得に成功している事
を意味しています。

cookieのuser_idでセッションファイルを取得して、その中身のkomatsu1
というデータからt_usrのusr_nameが該当したデータを取得しています。

このケースでいうuser_idがここではセッションの役割をしています。
アクセスする度にサーバーにこのuser_idの値komatsu1を送る事で
マイページなどの本人にしか見せてはいけないデータなどを見せる事ができます。

別のIDkomatsu111でcookie登録するとまたそのセッションファイルが
作成している事を確認します。

もう一度はじめからkomatsu1のIDを登録からはじめます。

サーバーのセッションファイルを削除しても、Cookieのuser_idを削除しても
どちらかが削除されれば、共通のデータがなくなるので、エラーが表示されます。

セッションの説明でした

DBのt_usrテーブルのkomatsu1がusr_nameでそれをキーに
usr_name_mbのデータseijiroがある事を確認します。

ログインボタンを押すとcookieに値が登録されているのを確認できます。

このケースでいうuser_idがここではセッションの役割をしています。
アクセスする度にサーバーにこのuser_idの値komatsu1を送る事で
マイページなどの本人にしか見せてはいけないデータなどを見せる事ができます。

redisなどでセッション管理するのが一般的ですが、わかりやすく
ファイルにセッションデータを登録する方法で実装してみます。

cookieとストレージに同じデータを保存するプログラミングをします。
cookieの値とストレージにあるファイル名が同じ事を確認しています。

マイページでseijiroと表示されれば成功です。
このデータはt_usrのテーブルに格納されているデータです。
cookieのuser_idでセッションファイルを取得して、その中身のkomatsu1
というデータからt_usrのusr_nameが該当したデータを取得しています。

バックエンド用語のクイズ集
https://programming.quigen.info/category/2/99/