Web知識を知っている人
セッション管理について知りたいという方はいませんか?
そこでこの記事ではセッション管理について詳しく解説していきたいと思います。
気になる方は是非最後まで読んで頂けたら幸いです。
\1分で登録完了! 受講料98,000円がなんと0円!/
【期間限定】ノーリスクで学びたい方におすすめ!
以下のプログラミングスクールもオススメです。
是非検討してみてはいかがでしょうか?
- 侍テラコヤ(初月50%OFF学び応援キャンペーン実施中)(解説記事はこちら)
⇒ 学び応援キャンペーンでお得に申し込む!
・コスパ最高! 月額2,980円〜利用できる!
・単月定額と比べて総額最大44,400円OFF!
・学び応援キャンペーン実施中!
- ZeroPlus Gate(受講料98,000円がなんと0円!)(解説記事はこちら)
⇒ 受講料0円でプログラミングを学ぶ!
・受講料0円
・現役エンジニアに質問し放題
・30日で副業レベルのWebスキルを学べる - 本気のパソコン塾(無料体験特典3つあり)(解説記事はこちら)
⇒ 7日間無料体験または無料相談会に申し込む!
・実際に役立つウェブデザイン、ウェブプログラミングを身につけることができる
・【期間限定】無料相談会参加特典3つあり!
・7日間無料体験・無料相談会実施中!
Web知識を知っている人
目次
セッション管理とは?
Web知識を知っている人
セッションとはWebサイトを訪れたユーザーがWebサイト内で行う一連の行動の流れのことです。
このセッション内におけるユーザーの状態を管理することをセッション管理と呼びます。
セッション管理の解説
セッション管理をECサイトにおけるセッションの例でみていきましょう。
ユーザーがWebサイトを訪れてから、カートに商品を入れ、名前・住所等を入力し、買い物を完了してWebサイトを閉じるまでがセッションとなります。
以下がECサイトにおけるセッションの一連の流れの図です。
ECサイトでは、リクエストしているユーザーが誰なのか、ユーザーは何をカートに入れたのか、金額はいくらになるのかといった情報をサーバー側で管理する必要があります。
しかし、HTTPにはユーザーが上記のような情報を記録する機能を持っていません。
そのため、セッション管理を行うためにWebサーバーはユーザー毎の情報にIDを紐づけます。
このIDをセッションIDと呼びます。
セッションIDはCookieを利用してWebブラウザに保存され、WebサーバーはCookieのIDを見てそのユーザーが誰なのかを判別する仕組みになっています。
リクエストしてきたユーザーのカートの中身を知りたい場合、サーバーが管理している情報の中から、ブラウザから送信されてきたセッションIDと同じIDが付けられている情報を引き出し、その中に格納されているカートの情報を取得します。
このようにCookieとセッションIDを用いるのが、一般的なセッション管理の方法となっています。
以下がセッション管理のイメージ図となっています。
しかし、セッション管理を行う場合、注意が必要になります。
セッションIDを第三者に知られてしまうと、第三者がセッションIDのユーザーになりすましてECサイトで買い物をしてしまう可能性があります。
セッションIDはよく狙われる情報であり、第三者のセッションIDを乗っ取るセッションハイジャックと呼ばれるサイバー攻撃も存在します。
このようなこともあるので、セッションIDの管理は注意する必要があります。
例えば、ランダムなIDを指定してリクエストしたら第三者の情報が見えてしまうといったことが起こらないようにセッションIDには十分な桁数を設定するといった対策が必要です。
RubyのセッションIDでは英数字で32桁のセッションIDを生成しています。
これだけセッションIDが長いとセッションIDを当てることが難しくなります。
また、暗号化、一定期間でセッションIDを切り替えるなどの対応が有効となります。
入門的なWeb知識を習得したい方へ
Web知識を知っている人
初学者がいきなりWebに関する専門書を読み始めると挫折することが多いです。
そこで途中で挫折せずに最後まで読み切れて、Webの全体像を把握するのに便利な一冊になっています。
この本は初めての方にも読みやすいように見開き1ページで文章と図を織り交ぜて端的に解説されています。
この本で全体像を理解してから専門書を読むと取り組みやすいかと思います。
もし、Webに関する入門的な知識を幅広く知りたいと思った方は「この一冊で全部わかるWeb技術の基本」を是非読んでいただければと思います。
Web知識を知っている人
まとめ
Web知識を知っている人
最後まで読んで頂きまして、ありがとうございました。
この機会に是非Web知識を習得してみてはいかがでしょうか?