セッションとは

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2019年03月30日

今回はHTTP通信で使用するセッションについて学びます。

HTTPはステートレスなプロトコルなため、単体ではページ間で情報を保存しておくことはできませんでした。そこでCookieを利用して、小さな情報を保存することで、ページ間での情報の引き継ぎを可能にしています。

セッションも同様にページ間で情報を保持するために利用されます。SNSなどでよくあるログイン機能もセッションを利用しています。ログインしたあとはログインされた状態をページ間で保持しておくことができますよね。

セッションとは

セッションは、上記で説明したとおり、ページ間で情報を保持しておくためのものです。Cookieでも似たような機能がありましたが、Cookieでは情報をクライアントに保存していて、情報を改竄できてしまう点や、使用できる容量に問題がありました。

そこで、セッションを利用することで改ざんの問題と、容量の問題を解決します。

そしてこのセッションを利用するために、主にCookieが利用されます

セッションの仕組み

以下の画像で説明します。

  1. まずはクライアントの初回アクセスです。アカウントの情報などを載せた状態でログインなどのリクエストを行います。
  2. サーバーは受け取ったリクエストからセッションを作成します。ここで、セッションidとそのidに紐づくデータを作成します。
  3. レスポンス返却時にCookieでセッションidを保存するようにお願いします。
  4. 2回目以降のリクエスト時にはCookieの情報が付与されるため、セッションidがサーバーへ送られます。
  5. サーバーはセッションidから、紐付いているデータを取り出して、誰からのアクセスかなどを認識することができます。

基本的にはこのような流れです。セッションidという小さなデータだけをCookieに保存させることにより、大きなデータはサーバー内に保存され、セッションidでデータを読み込むことができます。

まとめ

Cookieには小さなデータしか保存できないというデメリットがありましたが、セッションを利用することにより、Cookieの特性を活かしつつ大きなデータを扱うことができるようになります。


タグ