Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
KT
Uploaded by
Kamimura Taichi
5,247 views
Session管理とRailsのcookie store
ログイン機能を支えるsession管理の話と、Railsのcookie storeの話です。ステートフル・ステートレスの話が出てきます。
Engineering
◦
Read more
6
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 99
2
/ 99
3
/ 99
4
/ 99
5
/ 99
6
/ 99
7
/ 99
8
/ 99
9
/ 99
10
/ 99
11
/ 99
12
/ 99
13
/ 99
14
/ 99
15
/ 99
16
/ 99
17
/ 99
18
/ 99
19
/ 99
20
/ 99
21
/ 99
22
/ 99
23
/ 99
24
/ 99
25
/ 99
26
/ 99
27
/ 99
28
/ 99
29
/ 99
30
/ 99
31
/ 99
32
/ 99
33
/ 99
34
/ 99
35
/ 99
36
/ 99
37
/ 99
38
/ 99
39
/ 99
40
/ 99
41
/ 99
42
/ 99
Most read
43
/ 99
44
/ 99
45
/ 99
46
/ 99
47
/ 99
48
/ 99
49
/ 99
50
/ 99
51
/ 99
52
/ 99
53
/ 99
54
/ 99
55
/ 99
56
/ 99
57
/ 99
58
/ 99
59
/ 99
60
/ 99
61
/ 99
62
/ 99
63
/ 99
64
/ 99
65
/ 99
66
/ 99
67
/ 99
68
/ 99
69
/ 99
70
/ 99
71
/ 99
72
/ 99
73
/ 99
74
/ 99
75
/ 99
76
/ 99
77
/ 99
78
/ 99
79
/ 99
80
/ 99
81
/ 99
82
/ 99
Most read
83
/ 99
84
/ 99
85
/ 99
Most read
86
/ 99
87
/ 99
88
/ 99
89
/ 99
90
/ 99
91
/ 99
92
/ 99
93
/ 99
94
/ 99
95
/ 99
96
/ 99
97
/ 99
98
/ 99
99
/ 99
More Related Content
PDF
AWS BlackBelt AWS上でのDDoS対策
by
Amazon Web Services Japan
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
PDF
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
by
yoku0825
PDF
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
by
Yuta Imai
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
AWS BlackBelt AWS上でのDDoS対策
by
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
by
yoku0825
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
by
Yuta Imai
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
What's hot
PDF
Serverless時代のJavaについて
by
Amazon Web Services Japan
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
by
Ryuji Tsutsui
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
PDF
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
PDF
とある診断員とSQLインジェクション
by
zaki4649
PDF
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PDF
3分でわかるAzureでのService Principal
by
Toru Makabe
PPTX
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PPTX
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
by
Hiroshi Tokumaru
Serverless時代のJavaについて
by
Amazon Web Services Japan
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
by
Amazon Web Services Japan
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
Python 3.9からの新定番zoneinfoを使いこなそう
by
Ryuji Tsutsui
ソーシャルゲーム案件におけるDB分割のPHP実装
by
infinite_loop
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
とある診断員とSQLインジェクション
by
zaki4649
SQL大量発行処理をいかにして高速化するか
by
Shogo Wakayama
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
3分でわかるAzureでのService Principal
by
Toru Makabe
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
by
Hiroshi Tokumaru
More from Kamimura Taichi
PDF
vim入門
by
Kamimura Taichi
PDF
Ansible超入門
by
Kamimura Taichi
PDF
ajaxってなんなの
by
Kamimura Taichi
PPTX
Ruby - オブジェクト指向入門
by
Kamimura Taichi
PDF
What is git commit? - git commitって何なの?
by
Kamimura Taichi
PDF
Vuejs meetup
by
Kamimura Taichi
PDF
Ansible roleとinventoryの書き方
by
Kamimura Taichi
PDF
git addの解説
by
Kamimura Taichi
PDF
わからないことがわからないときにどうしたらよいのか。
by
Kamimura Taichi
PPTX
angularJS vs angular2
by
Kamimura Taichi
PDF
ruby 関数化のメリット
by
Kamimura Taichi
vim入門
by
Kamimura Taichi
Ansible超入門
by
Kamimura Taichi
ajaxってなんなの
by
Kamimura Taichi
Ruby - オブジェクト指向入門
by
Kamimura Taichi
What is git commit? - git commitって何なの?
by
Kamimura Taichi
Vuejs meetup
by
Kamimura Taichi
Ansible roleとinventoryの書き方
by
Kamimura Taichi
git addの解説
by
Kamimura Taichi
わからないことがわからないときにどうしたらよいのか。
by
Kamimura Taichi
angularJS vs angular2
by
Kamimura Taichi
ruby 関数化のメリット
by
Kamimura Taichi
Session管理とRailsのcookie store
1.
@carotene4035 session管理理
2.
前の通信は引き継がない ステートレス
3.
いい感じにわかりやすいステートレスの例例 ポテトください
4.
いい感じにわかりやすいステートレスの例例 かしこまりました
5.
いい感じにわかりやすいステートレスの例例 Mサイズで
6.
いい感じにわかりやすいステートレスの例例 何の話?
7.
いい感じにわかりやすいステートレスの例例 かしこまりました ポテトください 何の話? Mサイズで
8.
いい感じにわかりやすいステートレスの例例 かしこまりました ポテトください 何の話? Mサイズで ステートレスでは 前の通信は引き継がない
9.
いい感じにわかりやすいステートレスの例例 かしこまりました ポテトください 何の話? Mサイズで 前の通信内容の 「ポテトください」はもう無い
だから話が通じない
10.
前の通信は引き継がない ↓ 誰がどういう状態かを保持しない ステートレス
11.
前の通信を引き継ぐ ステートフル
12.
いい感じにわかりやすいステートフルの例例 ポテトください
13.
いい感じにわかりやすいステートフルの例例 かしこまりました ポテト
14.
いい感じにわかりやすいステートフルの例例 Mサイズで ポテト
15.
いい感じにわかりやすいステートフルの例例 680円です。 ポテト Mサイズ
16.
前の通信を引き継ぐ ↓ 誰がどういう状態かを保持できる ステートフル
17.
ステートフルじゃないと 困る時がある ネットショップ、 ログイン管理理等。。。
18.
ステートフルにするには、 Session管理理という⽅方法を使う
19.
ステートフル ステートレス セッション管理
20.
話しかけてきたやつに、 印を付けておく セッション管理理⽅方法(1)
21.
Res Req クライアント サーバ
22.
Req クライアント サーバ
23.
初めてきた人だな。 クライアント サーバ
24.
次来たときは、 session_id=1と名乗ってもらおう。 クライアント サーバ
25.
あと、この人の情報は ここに保存しよう。 session_id =
1 クライアント サーバ
26.
session_id = 1 set_cookie(‘session_id’,
1) クライアント サーバ
27.
session_id = 1 session_id
= 1 cookie cookie…ブラウザにデータを保 存する仕組み クライアント サーバ
28.
session_id = 1 session_id
= 1 cookie Cookie: session_id = 1 post: hoge=fuga クライアント サーバ
29.
hoge=fuga session_id = 1 session_id
= 1 cookie hoge=huga をsession情報という クライアント サーバ
30.
hoge=fuga session_id = 1 session_id
= 1 cookie Res クライアント サーバ
31.
hoge=fuga session_id = 1 session_id
= 1 cookie クライアント サーバ
32.
hoge=fuga session_id = 1 session_id
= 1 cookie Cookie: session_id = 1 post: foo=bar クライアント サーバ
33.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie クライアント サーバ
34.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie Res クライアント サーバ
35.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie クライアント サーバ
36.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie Req クライアント サーバ
37.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie 初めてきた人だな。(略) クライアント サーバ
38.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie session_id = 2 クライアント サーバ
39.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie session_id = 2 set_cookie(‘session_id’, 2) クライアント サーバ
40.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie session_id = 2 session_id = 2 cookie クライアント サーバ
41.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie session_id = 2 session_id = 2 cookie Cookie: session_id = 2 post: name=taichi クライアント サーバ
42.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie name=taichi session_id = 2 session_id = 2 cookie クライアント サーバ
43.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie name=taichi session_id = 2 session_id = 2 cookie Res クライアント サーバ
44.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie name=taichi session_id = 2 session_id = 2 cookie クライアント サーバ
45.
hoge=fuga, foo=bar session_id =
1 session_id = 1 cookie name=taichi session_id = 2 session_id = 2 cookie Cookie: session_id = 1 post: name=inoue クライアント サーバ
46.
hoge=fuga, foo=bar, name=inoue session_id
= 1 session_id = 1 cookie name=taichi session_id = 2 session_id = 2 cookie クライアント サーバ
47.
こんな感じで保持している
48.
【注意】 クライアントはサーバからは ⾒見見えない
49.
クライアントを隠してみると、 session_̲idの働きがより分かる
50.
Req クライアント サーバ
51.
session_id = 1 クライアント
サーバ
52.
session_id = 1 set_cookie(‘session_id’,
1) クライアント サーバ
53.
session_id = 1 クライアント
サーバ
54.
session_id = 1
Cookie: session_id = 1 post: hoge=fuga クライアント サーバ
55.
hoge=fuga session_id = 1 クライアント
サーバ
56.
hoge=fuga session_id = 1 Res クライアント
サーバ
57.
hoge=fuga session_id = 1 クライアント
サーバ
58.
hoge=fuga session_id = 1
Cookie: session_id = 1 post: foo=bar クライアント サーバ
59.
hoge=fuga, foo=bar session_id =
1 クライアント サーバ
60.
hoge=fuga, foo=bar session_id =
1 Res クライアント サーバ
61.
hoge=fuga, foo=bar session_id =
1 クライアント サーバ
62.
hoge=fuga, foo=bar session_id =
1 Req クライアント サーバ
63.
hoge=fuga, foo=bar session_id =
1 session_id = 2 クライアント サーバ
64.
hoge=fuga, foo=bar session_id =
1 session_id = 2 set_cookie(‘session_id’, 2) クライアント サーバ
65.
hoge=fuga, foo=bar session_id =
1 session_id = 2 クライアント サーバ
66.
hoge=fuga, foo=bar session_id =
1 session_id = 2 Cookie: session_id = 2 post: name=taichi クライアント サーバ
67.
hoge=fuga, foo=bar session_id =
1 name=taichi session_id = 2 クライアント サーバ
68.
hoge=fuga, foo=bar session_id =
1 name=taichi session_id = 2 Res クライアント サーバ
69.
hoge=fuga, foo=bar session_id =
1 name=taichi session_id = 2 クライアント サーバ
70.
hoge=fuga, foo=bar session_id =
1 name=taichi session_id = 2 Cookie: session_id = 1 post: name=taichi クライアント サーバ
71.
hoge=fuga, foo=bar, name=inoue session_id
= 1 name=taichi session_id = 2 クライアント サーバ
72.
hoge=fuga, foo=bar, name=inoue session_id
= 1 name=taichi session_id = 2 Res クライアント サーバ
73.
hoge=fuga, foo=bar, name=inoue session_id
= 1 name=taichi session_id = 2 クライアント サーバ
74.
リクエストに含まれる session_̲idを頼りにして、 「誰がどういう状態か」 を保持している
75.
「誰がどういう状態か」 を保持する⽅方法は、 他にもある。
76.
情報を暗号化して、 クライアントに保持してもらう ※ Railsのcookie storeの場合 セッション管理理⽅方法(2)
77.
Res Req クライアント サーバ
78.
Req クライアント サーバ
79.
初めて来た人だな。 クライアント サーバ
80.
次来たときは、 session_id=1と名乗ってもらおう。 クライアント サーバ
81.
セッション情報は暗号化しておこう クライアント サーバ
82.
session_id = 1 Config/secrets.yml セッション情報 🔒セッション情報 暗号化 クライアント
サーバ
83.
set_cookie( ‘ 🔒セッション情報’) クライアント
サーバ
84.
🔒セッション情報 cookie クライアント サーバ
85.
🔒セッション情報 cookie Cookie:
🔒セッション情報 post: hoge=fuga クライアント サーバ
86.
🔒セッション情報 cookie 🔒セッション情報 クライアント サーバ
87.
🔒セッション情報 cookie session_id = 1 Config/secrets.yml セッション情報 🔒セッション情報 復号化 クライアント
サーバ
88.
🔒セッション情報 cookie session_id = 1 Config/secrets.yml セッション情報 🔒セッション情報 復号化 なるほど、さっきの人ね。 クライアント
サーバ
89.
session_id = 1,
hoge=fuga セッション情報 情報追記 🔒セッション情報 cookie クライアント サーバ
90.
session_id = 1,
hoge=fuga Config/secrets.yml セッション情報 🔒セッション情報 再び暗号化 🔒セッション情報 cookie クライアント サーバ
91.
set_cookie( ‘ 🔒セッション情報’) セッション情報’) 🔒セッション情報 cookie クライアント
サーバ
92.
🔒セッション情報 セッション情報 cookie セッション情報が更新される。 クライアント サーバ
93.
「誰がどういう状態か」は cookieが持っている
94.
cookieが持っている session情報を復復号化して、 「誰がどういう状態か」 を把握している
95.
まとめ
96.
誰がどのような状態か、 保持しておきたい時がある ↓ ステートフル
97.
ステートレスをステートフルに する⽅方法 ↓ Session管理理
98.
Session管理理する⽅方法 ↓ sessionやcookie
99.
終わり!
Download