🏠 ホーム
フロントエンド
PHP
Go言語
プログラミングの理解
プログラマーへの道
Google API

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

  プログラミング >     プログラミングの理解 >  

今回はセッションの説明です

 

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

 

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

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

Cookieを知らないといけないので、Cookieを説明するとこの画像のようにGoogle Developer Toolを開いてApplicationタブを開くと、左にStorageの欄にCookieのアイコンをクリックすると各ドメインが見えます。

それを選択すると左からName, Value, Domainと並んでいます。

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

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

試しに、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/

登録日:

更新日:

by

コメント         tweetでコメント