Cookie、セッション、トークン、WebStorage の関係と違い

クッキー セッション トークン セッションストレージ ローカルストレージ
コンセプト ブラウザに永続的に保存できるデータは、ブラウザが実装するデータ保存機能のみです。 セッションはセッションで生成されたデータをサーバー側に保存するサーバーサイド技術です。 トークンはトークンとも呼ばれ、uid+time+sign[+固定パラメータ]を持ちます。 HTML5 によって提供される新しいクライアント側のローカル データ ストレージ メソッド (Web Storage) は、LocalStorage と SessionStorage に分かれており、JavaScript が Web ブラウザにキーと値のペアの形式でデータを保存できるようになります。
ライフサイクル サーバーによって生成され、有効期限を設定できます。ブラウザ側で Cookie が生成された場合、デフォルトではブラウザを閉じた後に有効期限が切れます。 サーバーはセッションを使用してユーザーの情報をサーバー上に一時的に保存します。ユーザーが Web サイトを離れるとセッションは破棄されます。 トークンは時間に依存するため、ユーザーは一定の時間が経過した後に再認証する必要があります。また、トークンには取り消し操作があり、トークン取り消しにより、同じ認証を持つ特定のトークンまたはトークンのグループを無効にすることができます。 現在のセッションで有効で、ページまたはブラウザを閉じるとクリアされます。 ユーザーが手動でクリアしない限り、ブラウザに永久に保存されます。
サーバーとの関係 sessionId とともにロードされた Cookie トークンはクライアントに保存され、通常はブラウザによって自動的に追加され、HTTP リクエスト ヘッダーに組み込まれます。 セッションはサーバーに保存され、一意の識別子 sessionId (クライアントの Cookie に保存) を持ちます。Cookie を受信した後、サーバーは sessionId を解析し、セッション リストを検索して対応するセッションを見つけます。 トークンはトークンとも呼ばれ、uid+time+sign[+固定パラメータ]を持ちます。ユーザー情報はトークンに暗号化されており、サーバーはトークンを受け取った後に復号化することで、それがどのユーザーであるかを知ることができます。開発者が手動で追加する必要がある クライアント(ブラウザ)にのみ保存され、サーバーとの通信には関与しません。
ストアデータサイズ 4KB 無制限のストレージサイズ / 5MB
安全性 XSS インジェクションのリスクがある cookie+session はユーザー認証を実現できますが、CSRF (クロスサイト リクエスト フォージェリ) には抵抗できません。 CSRFに抵抗できる XSS インジェクションのリスクがある
違いをまとめると Cookie はクライアントに保存される基本情報であり、サービスはそれを保存しません。クライアントはリクエストごとに Cookie を送信します。この Cookie には、アカウント情報、閲覧記録などが含まれる場合があります。 セッションはサービスによってローカルに保存されてクライアントに送信され、クライアントは訪問のたびにそれを持ち歩き、サービスのセッションと直接比較します。 トークンはサービス側で計算してクライアントに送信し、サービス側で保存するのではなく、クライアントが要求するたびに、自身で発行したものであるかどうかを復号化などの計算により検証します。
参考リンク (3 メッセージ) Cookie はどこに存在しますか?_Cookie、セッション、トークンの違い_weixin_39911916 のブログ - CSDN ブログ (メッセージ 3 件) サーバー側セッションとクライアント側セッションの違い、および cookie_Yitiantian のブログ - CSDN ブログ

Cookie、セッション、トークンを徹底的に理解する - Zhihu (zhihu.com)

セッション、Cookie、トークンの違いは何ですか? - ナゲッツ (juejin.cn)

SessionStorage と LocalStorage の詳細説明 - グレープシティ技術チーム - Blog Garden (cnblogs.com)

おすすめ

転載: blog.csdn.net/weixin_67665876/article/details/127454872