質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Q&A

解決済

3回答

2690閲覧

セッションIDとトークンによるユーザ識別の違い

Fur0

総合スコア48

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

0グッド

1クリップ

投稿2020/12/02 22:12

前提・実現したいこと

認証や認可などについて勉強していく中で、「セッションID」と「トークン」に出会いました。2つともユーザを識別するために使用されるものとザックリ認識していますが、きちんと理解したいです。

発生している問題・エラーメッセージ

どちらも「ユーザを識別するもの」という認識でいるため、どのような場合にセッションIDとトークンを使い分けるのかわかりません。

試したこと

今の私の頭の中を下記にまとめます。
・HTTP通信のリクエストからレスポンスまでの一連の処理を「セッション」という。
・セッションの中で、レスポンスの中に「セッションID」が含まれる。
・トークンも同様にレスポンスの時に受け取るものである。
・セッションIDは、ユーザのログイン状態を保持する?
・トークンは、サーバに保存されているユーザ情報をクライアント側で保持する?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

HTTP通信のリクエストからレスポンスまでの一連の処理を「セッション」という。

「セッションID」を考える際の「セッション」は、この「HTTPセッション」より長い、一連のHTTPリクエスト/レスポンスにまたがるものです。

投稿2020/12/02 23:41

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fur0

2020/12/03 10:47

調べなおしました。セッションに関しての今の認識は、以下の通りです。 HTTP通信では、状態をサーバは記憶することができないため、各クライアントのログインからログアウトまでの一連のHTTPセッションを記憶するための仕組み ご回答ありがとうございました!
guest

0

ベストアンサー

文脈によりますが、【どちらも「ユーザを識別するもの」という認識】で使われることがあります。

ユーザ識別の意味で使われる中で、いわゆる session に使用されるものを特別に session id と呼び、それ以外を token と呼んでいます。

試したことに記述されている内容はほぼすべて間違っています(というよりズレているって言った方が良いかなぁ。。。)
つまみ食い的なネット記事をあさるより、体系的な学習をおすすめします。

投稿2020/12/02 22:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fur0

2020/12/03 10:42 編集

おっしゃる通り、全体的に間違っていました。。。。 調べなおしました!すみませんでした...! ・HTTP通信のリクエストからレスポンスまでの一連の処理を「セッション」という。 →HTTP通信は状態を保持できないため、各クライアントとの状態を保持するための仕組みを「セッション」と呼ぶ。 ・セッションの中で、レスポンスの中に「セッションID」が含まれる。 →セッションIDはリクエストにも含まれます。 ・トークンも同様にレスポンスの時に受け取るものである。 →トークンは認証に成功したときに認可サーバから受け取ります。 ・セッションIDは、ユーザのログイン状態を保持する? →ログイン状態なども含めた、これまでのやり取りを保持することが役割です。 ・トークンは、サーバに保存されているユーザ情報をクライアント側で保持する? →トークンは、このクライアントは認証済みであることを示す情報が含まれています。認可サーバから受取、クライアント側で保持します。
退会済みユーザー

退会済みユーザー

2020/12/03 23:21

> ・セッションの中で、レスポンスの中に「セッションID」が含まれる。 →セッションIDはリクエストにも含まれます。 上記以外は、微妙にあってるけどやはり少しズレています。 多分、別の文脈で使用された、同じ言葉(セッションとかトークン)を混ぜて考えちゃってると思います。 回答にも書きましたが、Web アプリケーションの基本となる概念なので、ちゃんと体系的な学習をした方が良いですよ。
Fur0

2020/12/06 10:55

勉強しなおします。 回答ありがとうございました。
guest

0

使用ケースによって違うと思いますが、私の認識では

  • トークンは正当性を担保するもの
  • セッションIDは連続性を担保するもの

投稿2020/12/03 00:51

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Fur0

2020/12/03 10:48

調べなおしました。今は私も同じ認識です。 お恥ずかしい質問に、ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問