【】3つのHTTP、HTTP状態保持機構(クッキーおよびセッション)

  :私たちは、HTTPプロトコルの特徴を述べたコネクション、ステートレスをHTTPをもたらした未接続時のオーバーヘッドは、/ 1.1の持続的接続は、メカニズムが解決されました紹介しません。今度は、その「ステートレス」機能に焦点を当ててみましょう。

  いわゆるステートレス、サーバーを意味するトランザクション処理とメモリのために、前の状態に応じて、この要求に対処することはできませんではない、ユーザー情報を記録しません。そうすることが、サーバーの設計、実際の作業を簡素化しますが、私はワールド・ワイド・ウェブ・ネットワークの一部は、このようなショッピングサイトとして、ユーザーの行動のいくつかを記録するために、ユーザを識別することができます願っていないが、中にユーザーが項目を選択するだけでなく、他のアイテムを購入し続けます、この時点で、サーバーは、ユーザーのIDを覚えておきたいです。別の例として、ユーザのログイン・ページの場合、ステートレスは、新しいページが再度ログインするためにジャンプすることではありませんたびに、ログイン状態を管理するために、各要求パケットに追加のパラメータであることを意味し、いくつかの問題を引き起こすことがバインドされています。

  クッキーとセッションをしている状態を維持するために、クライアントとサーバ間のソリューションを、それがHTTPステートレスな欠陥を補います。


  クッキーとセッションを理解するために、最初に(例を考えるネットワークから、それが注目されます):

  コーヒーショップでコーヒー無料ギフトの提供のカップは、しかし、1回の機会がほとんどないコーヒーの5杯を消費するコーヒーの5杯を飲み、その後、我々は、顧客による消費のレベルを記録するためにいくつかの方法が必要です。事実を想像して、以下のいくつかのオプションにほかなら:

  1. 店員がいる限り、顧客がコーヒーショップに入ると、各顧客の消費量を思い出すことができ、非常に強力で、店員は治療する方法を知っています。このアプローチは、それ自体が状態をサポートするプロトコル
  2. お客様に消費量を記録したカードを付けて、一般的な効力発生日があります。顧客はこのカードを表示した場合たびに、消費者は、その後、消費者は、前または消費後にアップリンクされます。このアプローチは、クライアントの状態を保つことで
  3. 顧客に会員カードを付け、カード番号のほかにどのような情報たびに、消費者を記録していない、顧客がカードを示した場合、店員はレコードに対応するカード番号は、このレコード店でいくつかの消費者情報を追加しました。この方法は、サーバ側で保留に

  この例では、ほぼ瞬時に非常にイメージすることがまず第一に、クッキーとセッションの違いを理解すると言うことができる、シンプルで柔軟なため、HTTPプロトコルは、自身がそう、それは状態、拒否されたメソッドを持つように設定したくない、ステートレスです。したがって、状態のみ方法IIと方法3を維持するためには、それは言うことです:保留クライアントとは、サーバー側で状態を維持クッキーとセッションの両方のソリューションに正確に対応する2を、あります。同時に、クライアントで保留サーバー側のプログラムの使用はまた、ロゴを保存する必要があるので、セッションクッキーメカニズムは、アイデンティティの保全の目的を達成するためのメカニズムの助けが必要な場合がありますが、実際にはこれが唯一の方法ではありません。

1、クッキー機構

  まず、クッキーは、ホールド上のクライアントアプローチ。クライアントが初めてサーバーを要求すると、サーバはいくつかの状態情報を生成し、クライアントにヘッダーフィールドを追加するには、応答メッセージ得られます:「のSet-Cookie」を、名前は「クッキーの設定」で、クッキーですコンテンツ、それが管理するクライアントは、この応答を受信したとき、あなたはファイルをクッキーに行を追加し、バッククライアントへの応答メッセージとしてこれらの状態の情報には、クッキー、これらの値を記録しました。そして、サイトを探索するために、このクライアント時間、HTTPリクエストメッセージを送信し、それぞれを、それは、サーバが知っている、サーバーに一緒に送られたヘッダ行、に、クッキーファイル内のコンテンツに対応する行を削除しますクライアント情報の前にいくつかの状態。



  具体的には、クッキーの内容が含まれます:名前、値、有効期限、パスおよびドメインを一緒にクッキーのパス領域を構成します。有効期限が設定されていない場合は、ブラウザセッション中にクッキーの有効期間は、ブラウザのウィンドウが閉じていること、およびクッキーが消えます。ブラウザのセッションクッキーのライフサイクルが呼び出されたセッションクッキーセッションクッキーは、一般的にハードディスクに保存されているが、メモリに格納されていません。ハードディスクに保存されたクッキーは、異なるブラウザプロセス間で共有することができます。

  もちろん、このクッキーは、実際にクッキーを受け入れることを拒否するために、ユーザの自由度を与えるために、個人のプライバシーでウェブ上でいくつかのユーザーの行動を記録し、ブラウザがクッキーを閉じるように適宜設定することができます。

2、セッションメカニズム

  セッションセッションメカニズムについては、実際には、我々は前の例を理解することは困難ではありませんでした、それは、サーバー側の状態維持メカニズム、このような構造は、情報を保持するハッシュテーブルに似ています。

  プログラムがクライアントの要求にセッションを作成する必要がある場合、クライアントの要求は、セッション識別子が含まれているかどうか、サーバーを最初にチェックが(セッションIDと呼ばれます)。あなたはそれを含める場合は、このクライアントがセッションを作成し、以前にされています。サーバ(取得できない、それは新しいセッションを作成します)検索セッションのセッションIDに応じて、クライアントの要求は、セッションを作成するために、クライアントと比べて、セッションIDを含む、セッションに関連付けられたセッションIDを生成しない場合。セッションIDをコピーするでもない簡単でも繰り返した文字列でなければなりません。クライアントに戻すセッションIDは、応答を保存します。



  あなたはクッキーを無効にした場合、セッションIDは、道にクッキーを使用して、保存するためのクライアントにヘッダー行に配置することができ、クライアントにそれを返す方法、URLの書き換え方法は、URLのIDに追加するように適合させることができますに戻りました。

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

  その後、要約すると、我々は、クッキーとセッションの違いを見てください。

  1. 別の保管場所。最大の違いであるサーバに格納されたクライアントで維持クッキー状態情報、セッション、。
  2. 異なるデータ型唯一のASCII文字列を使用すると、あらゆるタイプのデータを保存することができます一方向ハッシュテーブルによりクッキー、およびセッションに保存することができます。
  3. プライバシーとセキュリティ異なります。クライアントリーダーに保存されたクッキーは、クライアントが表示されているので、迷彩や他のセキュリティ問題を生成するので、機密情報を格納するためにクッキーを使用しないようにしよう、または暗号化方式をとることができ、およびサーバに格納されたセッションのセッション、クライアントそれは透明です。機密情報漏洩のリスクは存在しません。
  4. 違いの妥当性。クッキーの有効期限は、永久的な記録情報を達成することができ、大きな値に設定された時間が短すぎる場合には、セッションIDがクッキーを頼ることがあり、セッションはすぐに失敗し、有効期限の時間が長すぎる、サーバ側を行いますメモリのオーバーフローをもたらす、セッションを大量に蓄積します。
  5. 異なるサーバ圧力。セッションは、各ユーザーがセッションを生成します、サーバーに保持しました。多くの同時ユーザーが存在する場合、それはセッションの多くを生成し、大量のメモリを消費します。そのため、高い同時トラフィックを持つサイトは、クライアントのセッションを追跡するためにセッションを使用する可能性は低いです。クッキーは、クライアント上に残り、サーバリソースを消費しません。同じ時間を読むために多くのユーザーが存在する場合、クッキーは、グーグル、Baiduの、シーナとしては良い選択、である、クッキーは唯一の選択肢かもしれません。
  6. シングルクッキー制限クライアントは3K、3Kを超えることはできませんクッキークライアントに保存されているサイトです。

参考リンク:

https://www.cnblogs.com/lonelydreamer/p/6169469.html

https://baijiahao.baidu.com/s?id=1612804856429135825&wfr=spider&for=pc

おすすめ

転載: www.cnblogs.com/gzshan/p/11125140.html