クッキーとセッションの概念との違い

クッキー

I.概要

HTTPプロトコルはステートレスであり、それは多数のトランザクションを処理できるように、可能な限りHTTPプロトコルのような単純なことを可能にするために、。HTTPクッキーは、状態情報を保存するために導入しました。

クッキーは、ユーザーのブラウザに送信され、サーバがローカルにデータの小片を保存し、ブラウザが同じブラウザからの2つの要求かどうかをサーバーに伝えるために使用したのと同じサーバ要求、に運ばれた後、再度起動されます。

各要求は、クッキーデータを運ぶために必要となりますので、(特にモバイル環境での)追加のパフォーマンス・オーバーヘッドをもたらすでしょう後ので。

第二に、主な目的

  • セッション追跡(例えば、ユーザのログイン状態、カート、ゲームのスコア、または記録すべき他の情報のような)
  • (例えばトラッキングユーザ行動分析、等のような)追跡ブラウザの動作

第三に、方法を作成

サーバへのクライアントの完了がHTTP要求を送信した後、サーバができるクッキーに保存されているブラウザに応答パケットを取得するためにクライアントによってフィードバックHTTPレスポンスメッセージのSet-Cookieヘッダーフィールドを含みます。

次のようにHTTP応答メッセージがあります

HTTP / 1.0 200 OK
コンテンツタイプ:text / htmlで
のSet-Cookie:USER_ID = 1
のSet-Cookie:USER_NAME =神戸
のSet-Cookie:role_type = 1

クライアントの後に同じサーバーにリクエストを送信すると、それはサーバにブラウザからCookie情報を削除し、Cookieリクエストヘッダフィールドを介して送信されます。

行動HTTP要求パケットは、再び次の

GET /index.htmlがHTTP / 1.1
ホスト:www.test.com
クッキー:USER_ID = 1; USER_NAME =神戸; role_type = 1

第四に、分類

  • セッションクッキーは:ブラウザの後に、それは、セッション中にのみ有効であることを意味し、それは自動的に削除されます閉じられています。
  • 持続Cookie:有効期限を指定します(有効期限)または有効期間(最大エージング)が永続的なCookieになっていました。

有効期限を設定していない場合は、ブラウザセッションの間、クッキーの有効期間は、ブラウザウィンドウを閉じ、クッキーが消えます。セッションクッキーは、一般的にハードに保存されているが、メモリに保持されていない、もちろん、そのような行動は、所定の規範ではありません。

あなたは有効期限を設定した場合、ブラウザのクッキーを閉じた後、再びブラウザを開き、お使いのハードドライブに保存されます有効期限が設定を超えるまで、これらのクッキーは有効なまま。ハードディスクに保存されたクッキーは、異なるプロセスブラウザ間で共有することができます。

以下に示すように、これは永続的なクッキー、2019年6月10日6:30の夜の有効期限です。

Set-Cookieを:USER_ID = 1; =月、2019年6月10日午後六時30分00秒GMTの有効期限が切れます。

V.スコープ

パスのプロパティ

ホストのパスを指定するパス識別子は、(URLパスがリクエストURL内に存在しなければならない)クッキーを受け入れることができます。文字%のx2F(「/」)パスセパレータとして、副経路が一致します。たとえば、パス= /ドキュメントを設定し、その後、次のアドレスが一致します。

  • /ドキュメント
  • /ドキュメント/ウェブ/
  • /ドキュメント/ウェブ/ HTTP

ドメインのプロパティ

ドメインのロゴは、クッキーを受け入れるできるホストを指定します。指定しない場合、デフォルトでは(サブドメインは含まれません)ドキュメントの現在のホストです。ドメインを指定した場合、一般的にサブドメインが含まれています。設定した場合、例えば、ドメイン= test.orgを、またクッキーサブドメイン(例えば、中に含まabcd.test.org)。

セッション

I.概要

クッキーは、クライアントのブラウザに保存され、セッションはサーバ上に保存除いセッション記録は、顧客ステータスの別のメカニズムです。

サーバーへのクライアントブラウザへのアクセス、何らかの形でサーバーに記録されたクライアント情報をサーバー。これはセッションです。ちょうどそれの状態から、再び、クライアントのセッションクライアントブラウザへのアクセスを探します。

セッションは、サーバー上に保存することができ、ファイル、データベースまたはメモリの。また、セッションに保存することができRedisのこのメモリデータベースを、効率が高くなります。

第二に、創造とセッションの使用

ユーザーログインの例を維持するセッションの最も一般的に使用してください

  • ユーザーがログインすると、ユーザーはHTTP要求パケットにユーザー名とパスワードが含まれているフォームを送信します。
  • サーバーは、ユーザー名とパスワードを(検証し、この時間は、セッションを作成していない権利(あれば)セッションを作成するには、この時、IDはセッションを取得)のRedisでのキーは、セッションIDと呼ばれているのRedisに格納されたユーザ情報を、置きます。
  • サーバは、応答パケット返すSet-Cookieヘッダーフィールドは、セッションIDが含まれた後に、クライアントは、応答パケットを受信したクッキー値がブラウザに格納されているが
  • クライアントは、後に、同じサーバーへの要求が時にCookie値が含まれます、そして、サーバは受信抽出されたIDセッション事業を継続する前に、Redisのから抽出されたユーザー情報を。

第三に、無効なクッキー

クライアントが無効になっクッキーである場合、通常はセッションCookieを頼らずに達成するための2つの方法があります。

  • URL書き換えの技術は、セッションIDをパラメータURLとして渡されます。
  • 隠しフォームフィールドを使用します。サーバーは自動的に、フォームを修正フォームが送信されたときにサーバーに渡されたセッションIDを有効にするには、隠しフィールドを追加します。
<form name="testform" action="/xxx"> 
<input type="hidden" name="sessionid" value="ByOK3vjFD75aPcg!-145788764"> 
<input type="text"> 
</form> 

四、クッキーとセッションの関係図

ここに画像を挿入説明
ネットワークからの写真は、不法行為は、私に連絡してください。

クッキーとセッションの比較

  1. クッキーは、ASCII文字列を格納することができ、そしてセッション中したがって、データの任意のタイプを格納することができ、データ優先セッションの複雑さを考慮します
  2. ブラウザに保存されたクッキーは、悪意のあるビューことは容易です。選択したセッションのセキュリティを考慮あなたには、いくつかのプライベートなデータをクッキーに存在している場合は、Cookieの値は、暗号化し、サーバーを解読することができます。
  3. ユーザーならば大規模なサイトの場合は、すべての情報がセッションに格納され、その後、コストがあり、非常に大きいので、セッションに格納されているすべてのユーザー情報に対して推奨されていません。
  4. シングルクッキーは4Kを超えることはできませんデータは、多くのブラウザは、20クッキーまで保存することが一つのサイトに限定されて保存され、セッションは関係ありません。

おすすめ

転載: blog.csdn.net/u013568373/article/details/91391127