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
660
SNSは最強
shimotaroo
3
670
それ、プロダクトに機能追加しなくてもよくないっすか?
shimotaroo
0
370
イシューからはじめよう
shimotaroo
0
520
マーケ・セールス担当者の話を理解したいいいいい!!!
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
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
140
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
12k
Catch Up: Go Style Guide Update
andpad
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
110
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
370
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
370
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
2.9k
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
160
AIエージェント時代における TypeScriptスキーマ駆動開発の新たな役割
bicstone
4
1.5k
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
開発生産性を上げるための生成AI活用術
starfish719
1
160
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Git: the NoSQL Database
bkeepers
PRO
431
66k
A Modern Web Designer's Workflow
chriscoyier
697
190k
How STYLIGHT went responsive
nonsquared
100
5.8k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Embracing the Ebb and Flow
colly
88
4.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
KATA
mclloyd
32
15k
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によるセッション管理はユーザーの識別(認証)が必要なアプリ
ケーションで使用される
ご静聴ありがとうございました!