はじめに
こんにちは!さとたいです。
「セッションってよく聞くけど、実際何者かわかってない...」と思ったので、概要やユースケースをこの記事で整理し、理解を深めようと思います。
セッションとは?
通信の開始から終了までを指します。
クライアントとサーバーで通信する場合は、クライアントからサーバーへ接続した時点でセッションが始まり、サーバーから切断するとセッションが終了します。
どんな時に必要?
セッションは、複数のリクエストにまたがってユーザーの状態を保持する必要があるときに使われます。
HTTP通信はステートレスであり、サーバーは各リクエストを独立したものとして扱かうため、前回のリクエストの情報を自動的に覚えておくことはできません。
例えば、ユーザーがログインした後の画面遷移では、「誰がログインしているのか」という情報を継続して管理する必要があります。このような場合、セッションや関連する仕組みを利用することで、サーバーは同一ユーザーからのリクエストであることを識別でき、ログイン状態を維持したまま処理を行えます。
Cookie, ローカルストレージとは?
セッションについて調べていたら "Cookie" や "ローカルストレージ" という単語が出てきたので整理します。
Cookie
HTTPにおけるウェブサーバとウェブブラウザ間で状態を管理する通信プロトコル、またそこで用いられるウェブブラウザに保存された情報のことを指します。
一時的なクッキーである "Session Cookie" と、ブラウザを閉じても消えない "Persistent Cookie" の二種類があり、 "Session Cookie" は通称セッションと呼ばれることもあるため、混同に注意が必要です。
ローカルストレージ
ここで言う "ローカルストレージ" はブラウザにおけるものを指してます。
Webページで取り扱うデータを保存し、ブラウザを閉じてもデータが保存され続けます。
"Cookie" と似ていますが、"ローカルストレージ" は取り扱えるデータ量が大きく、必要な場合のみデータ送信を行えるのが特徴です。
ユースケース
- Webアプリのログイン状態管理
- ショッピングカートの内容保持
- アクセス制御・権限制御
まとめ
セッションやCookieについて調べたことで、意味をしっかり理解できた気がします!
これまで会話の中でよく聞いていた「セッション」は、いわゆる "Session Cookie" のことを指していたのだと分かりました。
次にこの話題が出てきても、おろおろせずに会話についていけそうです!