Upgrade to Pro — share decks privately, control downloads, hide ads and more …

セッションとCookieをおさらい / session and cookie

セッションとCookieをおさらい / session and cookie

エンジニア2年目にしてセッションとCookieについておさらいしました。
なんか、フワッとした理解しているところもあったので良い復習になりました!!

Yutaro Shimoda

October 22, 2021
Tweet

More Decks by Yutaro Shimoda

Other Decks in Programming

Transcript

  1. セッションとCookieをおさらい
    2021/8/28(土)

    View Slide

  2. なぜ使うのか?
    ステートレスなHTTPをステートフルに使うため
    客「ハンバーガーセットをお願いします。」
    店員「ハンバーガーセットですね。ドリンクは何にしますか?」
    客「ファンタでお願いします」
    店員「ファンタですね。サイズは何にしますか?」
    客「Mでお願いします。」
    店員「M?は?何がですか?」 これがステートフル

    View Slide

  3. Cookie(クッキー)とは
    ● クライアント(ブラウザ)に保存されたデータ
    ● サーバーからのHTTPレスポンスヘッダー(Set-Cookie)を用いてWebブラウザに送
    られる
    ● サーバーにアクセスするたびに自動送信される
    ● 「クッキー名=値」の形(1つのクッキーは4KBまで)
    ● ブラウザによって保持できる数が異なる

    View Slide

  4. セッション(Session)とは
    ● 一連の処理の始まりから終わりまでを表す概念
    ○ ログイン〜ログアウト
    ○ HTTP通信の接続を確立〜遮断
    ● Cookieを利用することでセッション(一連の処理)を実現できる=ステートレスをス
    テートフルにできる
    ● 「ログインしている」という情報のことをクライアントのアプリケーション状態といい、
    別名でセッション状態とも言う。

    View Slide

  5. 使用されるケース
    ユーザーの識別(認証)が必要なアプリケーション
    ● ECサイト
    ● 転職サイト
    ● SNS
    など

    View Slide

  6. Cookieを使用したセッション管理の仕組み①
    クライアント
    ログイン
    Cookieを保存するよう指示
    ・セッションID発行
    ・セッション情報保存
    セッションファイル
    サーバー
    Cookieをブラウザに保存
    Cookie
    名前:sessionid
    値:9reifwjgkrnrqfuvoijqfi
    sessionid: 9reifwjgkrnrqfuvoijqfi
    user_id: 1
    sessionid: 9reifwjgkrnrqfuvoijqfi

    View Slide

  7. Cookieを使用したセッション管理の仕組み②
    クライアント
    認証が必要なリクエスト
    サーバー
    sessionid: 9reifwjgkrnrqfuvoijqfi
    user_id: 1
    Cookieも送る
    sessionid: 9reifwjgkrnrqfuvoijqfi
    9reifwjgkrnrqfuvoijqfi
    CookieからセッションIDを取り出す
    セッションファイルと照合
    user_id=1のユーザー
    を識別できる
    ユーザーがログインしているという状態を維持できる

    View Slide

  8. 最後におさらい
    ● Cookieは、クライアント(ブラウザ)に保存されたデータ
    ● セッションは、一連の処理の始まりから終わりまでを表す概念
    ● Cookieとセッションを組み合わせて使うことでステートレスなHTTPをステートフルに
    することができる
    ● セッションとCookieによるセッション管理はユーザーの識別(認証)が必要なアプリ
    ケーションで使用される

    View Slide

  9. ご静聴ありがとうございました!

    View Slide