【トークン】と【セッション】の違いとは?例文付きで使い方や意味をわかりやすく解説
トークンとセッションの分かりやすい違い
トークンは、本人であることや、何をしてよいかを示すために渡される「しるし」にあたる文字列です。セッションは、一連のやり取りをひとまとまりとして扱う考え方と、その状態を保つ仕組みを指します。
しるしそのものがトークン、やり取りのまとまりと状態がセッション、という関係で、セッションを保つ手段としてトークンが使われることもあります。どちらか一方だけを使う、という排他的な関係ではありません。
トークンとは?
トークンとは、本人であることや、どの範囲まで操作してよいかを示すために渡される文字列のことです。受け取った側は、それを添えて要求を送り、受け取ったサーバーが正しいかどうかを確かめます。中身を検証できる形になっていれば、サーバー側が状態を持たなくても判断できるのが特徴です。
有効期限が設けられることが多く、期限が切れたら新しく取り直す作りが一般的です。渡した相手が持ち歩く性質上、盗まれた場合の被害を抑える工夫として、期限を短くする、使える範囲を絞るといった手当てが取られます。同じ文字列を持っていれば誰でも使えてしまう性質があるため、保管場所には注意が要り、公開の場に書き込んでしまう事故は珍しくありません。
誤って外に出したときは、すぐ取り消すのが原則です。
トークンの例文
- ( 1 ) 接続時に発行されたトークンを添えて、要求を送っている。
- ( 2 ) トークンの有効期限が切れたので、取り直してから再試行した。
- ( 3 ) トークンは持ち出される前提で、使える範囲を絞ってある。
- ( 4 ) 誤ってトークンを設定ファイルに書き込み、慌てて取り消した。
- ( 5 ) 外部の仕組みと連携するため、専用のトークンを発行した。
- ( 6 ) トークンだけで判断できるので、サーバー側は状態を持たずに済む。
トークンの会話例
セッションとは?
セッションとは、利用者がある仕組みを使い始めてから終えるまでの一連のやり取りを、ひとまとまりとして扱う考え方と、その状態を保つための仕組みを指します。ウェブでは、要求ごとに通信が切れる前提のため、前の要求と同じ利用者だと分かるように、識別のためのしるしをやり取りします。
多くの場合、サーバー側に利用者ごとの情報を保存し、その置き場所を指す識別子だけを利用者側に渡します。一定時間何もしなければ切れる、といった期限が設けられ、利用を終えたときにサーバー側で破棄できる点が特徴です。
利用者ごとの情報をサーバー側に置く方式では、その置き場所の容量や、サーバーを複数台に増やしたときの共有をどうするかが運用上の課題になります。
セッションの例文
- ( 1 ) 一定時間操作がないと、セッションが切れる設定にしている。
- ( 2 ) セッションの情報はサーバー側に保存し、識別子だけを渡す。
- ( 3 ) 利用を終えたら、セッションを破棄して安全を保つ。
- ( 4 ) セッションが切れていたので、もう一度入り直した。
- ( 5 ) セッションの数が増え、保存先の負担が大きくなってきた。
- ( 6 ) 同じ利用者からの連続した操作を、一つのセッションとして扱う。
セッションの会話例
トークンとセッションの違いまとめ
トークンとセッションは、どちらも「同じ利用者だと分かるようにする」場面で登場しますが、指すものが違います。トークンは、本人であることや操作できる範囲を示すために渡される文字列そのもので、受け取った側がその正しさを確かめて判断します。
セッションは、一連のやり取りをひとまとまりとして扱う考え方と、その状態を保つ仕組みを指し、多くはサーバー側に情報を置き、識別子だけを利用者側に渡します。しるしを指すのがトークン、やり取りの継続と状態を指すのがセッションと整理すると混同しにくくなります。
実際の仕組みでは、セッションを保つ手段としてトークンが使われるなど、両者は組み合わせて用いられます。
トークンとセッションの読み方
- トークン(ひらがな):とーくん
- トークン(ローマ字):tookun
- セッション(ひらがな):せっしょん
- セッション(ローマ字):sesshon