ベストアンサー
Cookieとセッションの背後にある主な考え方は同じです-必要なデータがいくつかありますウェブサイトのさまざまな部分で記憶されています。たとえば、ウェブサイトでは、ページをパーソナライズしたり、アクセスを制御したりするために、(リクエストを行うマシンに)ログインしているユーザーを記憶したい場合があります。
Cookieにユーザーを強化するだけのデータが含まれている、最も単純なケースの場合経験があり使い捨てであるため、Cookieはサーバーではなくクライアントに保存されるため、適切に拡張できます。また、CookieデータにはJavaScriptからアクセスできますが、セッションデータはサーバー専用です。 Cookieは、クライアントがブラウザを閉じたりシャットダウンしたりした後も存続する可能性がありますが、セッションは通常、リソースを節約するために長くは続きません。
一方、機密データが懸念される場合は、攻撃者を避けるために代わりにセッションを使用する必要があります。クッキーの操作から。 Yahooはこの悪名高い例です。彼らのCookie生成コードが侵害され、数十万のアカウントがアクセスされました。これは、Cookieを認証に使用できないことを意味するものではありませんが、Cookieが制御できなくなったデータには十分注意する必要があります。多くのWebサイトでは、ログインしたユーザーを記憶するために、セッションIDとすべての機密セッションデータをサーバーに保存するCookieの両方を組み合わせて使用しています。
Cookieとセッションは、ハンマーやペンチのようなツールにすぎません。状況を評価し、どのツールがどこで機能するかを把握する必要があります。
回答
Cookieは、特定の有効期限まで存続します。これは非常に長い時間になる可能性があります。これを使用すると、ユーザーが繰り返しログインしたり、他の方法で自分自身を識別したりする必要がなくなります。
ユーザーがブラウザのタブを閉じると、セッションストレージの有効期限が切れます。そのため、これらのことはできません。
おそらく、「ローカルストレージ」について考えているかもしれません。これはまだ3番目のことです。
セッションとローカルストレージの両方で、ブラウザに応じて5〜25Mバイトを保存できます。フォーマット。 Cookieは約4kバイトしか使用できません。これは、写真や音声などを保存するには不十分です。
Cookieは、サーバーがJavaScriptコードを使用せずに直接アクセスできるため、セッションやローカルストレージにも役立ちます。それらにアクセスするにはJavaScriptコードが必要です。サーバーがそれらを表示する必要がある場合は、その情報を交換するために作成された特別なソフトウェアが必要です。
Cookieとローカルストレージでは、2つの別々のタブを使用できます。永続的なデータを共有するための同じWebサイト。 「セッションストレージ」は、各タブに個別のデータを使用するように強制します。これは、必要なものに応じて、良いことも悪いこともあります。