Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
セッションとCookieをおさらい / session and cookie
Search
Yutaro Shimoda
October 22, 2021
Programming
0
390
セッションとCookieをおさらい / session and cookie
エンジニア2年目にしてセッションとCookieについておさらいしました。
なんか、フワッとした理解しているところもあったので良い復習になりました!!
Yutaro Shimoda
October 22, 2021
Tweet
Share
More Decks by Yutaro Shimoda
See All by Yutaro Shimoda
エンジニアの次のキャリアに プロダクトマネージャーという選択
shimotaroo
2
650
SNSは最強
shimotaroo
3
670
それ、プロダクトに機能追加しなくてもよくないっすか?
shimotaroo
0
370
イシューからはじめよう
shimotaroo
0
510
マーケ・セールス担当者の話を理解したいいいいい!!!
shimotaroo
0
1.3k
自分のペースで頑張ればいんじゃない?というお話
shimotaroo
0
1.8k
つながる勉強会立ち上げからの1年間を振り返る/tsunagaru-kobe-2021
shimotaroo
0
260
【ハンズオン】PHPUnitでのテストコード実装超入門/PHP-Hands-On
shimotaroo
0
6.1k
SPA/CSR/SSR/SSGまとめ/SPA-SSR-SSG
shimotaroo
0
7.3k
Other Decks in Programming
See All in Programming
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
120
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
290
機能追加とリーダー業務の類似性
rinchoku
2
1.2k
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
130
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
Laravel Boost 超入門
fire_arlo
2
210
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
0
400
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
270
rage against annotate_predecessor
junk0612
0
160
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
300
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Documentation Writing (for coders)
carmenintech
74
5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
What's in a price? How to price your products and services
michaelherold
246
12k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Automating Front-end Workflow
addyosmani
1370
200k
We Have a Design System, Now What?
morganepeng
53
7.8k
Transcript
セッションとCookieをおさらい 2021/8/28(土)
なぜ使うのか? ステートレスなHTTPをステートフルに使うため 客「ハンバーガーセットをお願いします。」 店員「ハンバーガーセットですね。ドリンクは何にしますか?」 客「ファンタでお願いします」 店員「ファンタですね。サイズは何にしますか?」 客「Mでお願いします。」 店員「M?は?何がですか?」 これがステートフル
Cookie(クッキー)とは • クライアント(ブラウザ)に保存されたデータ • サーバーからのHTTPレスポンスヘッダー(Set-Cookie)を用いてWebブラウザに送 られる • サーバーにアクセスするたびに自動送信される • 「クッキー名=値」の形(1つのクッキーは4KBまで)
• ブラウザによって保持できる数が異なる
セッション(Session)とは • 一連の処理の始まりから終わりまでを表す概念 ◦ ログイン〜ログアウト ◦ HTTP通信の接続を確立〜遮断 • Cookieを利用することでセッション(一連の処理)を実現できる=ステートレスをス テートフルにできる
• 「ログインしている」という情報のことをクライアントのアプリケーション状態といい、 別名でセッション状態とも言う。
使用されるケース ユーザーの識別(認証)が必要なアプリケーション • ECサイト • 転職サイト • SNS など
Cookieを使用したセッション管理の仕組み① クライアント ログイン Cookieを保存するよう指示 ・セッションID発行 ・セッション情報保存 セッションファイル サーバー Cookieをブラウザに保存 Cookie
名前:sessionid 値:9reifwjgkrnrqfuvoijqfi sessionid: 9reifwjgkrnrqfuvoijqfi user_id: 1 sessionid: 9reifwjgkrnrqfuvoijqfi
Cookieを使用したセッション管理の仕組み② クライアント 認証が必要なリクエスト サーバー sessionid: 9reifwjgkrnrqfuvoijqfi user_id: 1 Cookieも送る sessionid:
9reifwjgkrnrqfuvoijqfi 9reifwjgkrnrqfuvoijqfi CookieからセッションIDを取り出す セッションファイルと照合 user_id=1のユーザー を識別できる ユーザーがログインしているという状態を維持できる
最後におさらい • Cookieは、クライアント(ブラウザ)に保存されたデータ • セッションは、一連の処理の始まりから終わりまでを表す概念 • Cookieとセッションを組み合わせて使うことでステートレスなHTTPをステートフルに することができる • セッションとCookieによるセッション管理はユーザーの識別(認証)が必要なアプリ
ケーションで使用される
ご静聴ありがとうございました!