自分の中でなんとなく分かっているけど、はっきりとは説明しにくい部分を改めて調べてみました。
それぞれの意味
セッション
接続を開始してから終了するまでの一連の通信。セッションにIDを付けることで各セッションを管理できる。
Cookie
Webサーバーが発行し、ブラウザに保存される小さなファイル。
Token
認証情報が入ったデータ、認証情報として扱われるデータ
認証
Cookieとセッションによる認証
概要
Webサーバーに初めてログインした際に、WebサーバーはセッションIDを含めたCookieファイルを発行する。そのCookieファイルはブラウザに保存され、次回以降のログイン情報として扱われる。その後は、リクエストごとに送信されるCookie(セッションID含む)をサーバーが確認し、保存済のセッション情報と照合し、保存情報を更新する。
特徴
- 状態管理ができる。ページを跨いで、状態の保持ができる。
- サーバー側で状態管理をするため、リクエストするごとにサーバーでセッション情報の確認と保存を行い、少し処理が遅くなる
- モバイルのネイティブアプリには使用できない
Tokenによる認証
概要
Webサーバーに初めてログインした際に、WebサーバーがTokenを発行し、クライアント側が保存する。WebサーバーはTokenを保存しないため、次回以降のリクエスト時には検証処理のみ行う。Tokenは、基本的にLocalStorageかCookieに保存される。ただし、Cookieに保存する際に上限が4KBと制約がある。
特徴
- Tokenは状態管理は行わない。そのため、サーバー側の負担が軽くなる。
- TokenのデータサイズはセッションCookie(セッションIDが保存されたCookie)に比べて大きい
その他関連用語
OAuth
複数のWebサービスを連携して動作させる仕組み。連携を許可したサービス間で、ユーザーの同意を取ったうえで、あるサービスから別サービスへ情報取得、削除、更新等ができる。
CSRF
クロスサイトリクエストフォージェリ。サイバー攻撃の一種。利用者が攻撃対象のサービスにログインした状態で罠サイトを閲覧することで、利用者のログイン情報に基づいて勝手に攻撃用リクエストが送信される。防止するには、ワンタイムトークンや再度ログイン認証を行ったりする方法がある。
キャッシュ
何度もみるWebページについて、2回目以降に表示するスピードを早くし、快適なプラウジングをサポートする技術です。ページ内の画像やアイコンなどを一時的にパソコン内に保存し、それを読み込むという仕組み