エンジニア2年目にしてセッションとCookieについておさらいしました。 なんか、フワッとした理解しているところもあったので良い復習になりました!!
セッションとCookieをおさらい2021/8/28(土)
View Slide
なぜ使うのか?ステートレスなHTTPをステートフルに使うため客「ハンバーガーセットをお願いします。」店員「ハンバーガーセットですね。ドリンクは何にしますか?」客「ファンタでお願いします」店員「ファンタですね。サイズは何にしますか?」客「Mでお願いします。」店員「M?は?何がですか?」 これがステートフル
Cookie(クッキー)とは● クライアント(ブラウザ)に保存されたデータ● サーバーからのHTTPレスポンスヘッダー(Set-Cookie)を用いてWebブラウザに送られる● サーバーにアクセスするたびに自動送信される● 「クッキー名=値」の形(1つのクッキーは4KBまで)● ブラウザによって保持できる数が異なる
セッション(Session)とは● 一連の処理の始まりから終わりまでを表す概念○ ログイン〜ログアウト○ HTTP通信の接続を確立〜遮断● Cookieを利用することでセッション(一連の処理)を実現できる=ステートレスをステートフルにできる● 「ログインしている」という情報のことをクライアントのアプリケーション状態といい、別名でセッション状態とも言う。
使用されるケースユーザーの識別(認証)が必要なアプリケーション● ECサイト● 転職サイト● SNSなど
Cookieを使用したセッション管理の仕組み①クライアントログインCookieを保存するよう指示・セッションID発行・セッション情報保存セッションファイルサーバーCookieをブラウザに保存Cookie名前:sessionid値:9reifwjgkrnrqfuvoijqfisessionid: 9reifwjgkrnrqfuvoijqfiuser_id: 1sessionid: 9reifwjgkrnrqfuvoijqfi
Cookieを使用したセッション管理の仕組み②クライアント認証が必要なリクエストサーバーsessionid: 9reifwjgkrnrqfuvoijqfiuser_id: 1Cookieも送るsessionid: 9reifwjgkrnrqfuvoijqfi9reifwjgkrnrqfuvoijqfiCookieからセッションIDを取り出すセッションファイルと照合user_id=1のユーザーを識別できるユーザーがログインしているという状態を維持できる
最後におさらい● Cookieは、クライアント(ブラウザ)に保存されたデータ● セッションは、一連の処理の始まりから終わりまでを表す概念● Cookieとセッションを組み合わせて使うことでステートレスなHTTPをステートフルにすることができる● セッションとCookieによるセッション管理はユーザーの識別(認証)が必要なアプリケーションで使用される
ご静聴ありがとうございました!