httpプロトコルはステートレスですが、オンラインショッピングなど、多くのアプリケーションではサーバーがクライアントのステータスを把握する必要があります。このとき、Cookieとセッションが役割を果たします
Cookieとセッションの違いと関係
。 cookieメカニズムではクライアントで状態を維持するソリューションが採用されていますが、sessionメカニズムではサーバーで状態を維持するソリューションが採用されていますが、サーバー側で状態を維持するソリューションも必要です。 ID をクライアントに保存するため、セッション メカニズム ID を保存するという目的を達成するには Cookie メカニズムに頼る必要があるかもしれませんが、実際には他のオプションがあります
Cookie メカニズム
Cookie テクノロジー
セッション追跡のためにユーザーのローカル端末に保存されるデータ (通常は暗号化されます)
Cookie コンポーネント
1. http 応答メッセージの Cookie ヘッダー行
2. http 要求メッセージの Cookie ヘッダー行
3.クライアントホストに保存されたファイルはブラウザによって管理されます
4. Webサーバー側のバックエンドデータベース
Cookieの原理
Cookieの配布はhttpプロトコルを拡張することで実現され、サーバーはAddを渡しますhttp 応答ヘッダーに特別な命令行を追加して、ブラウザーに命令に従って対応する Cookie を生成するよう促しますが、注意すべきことが 1 つあります。 JavaScript や vbscript などの純粋なクライアント側スクリプトも Cookie を生成する可能性があるため、潜在的なセキュリティ リスクが存在します。
Cookieの使用は、特定の原則に従ってブラウザによってバックグラウンドでサーバーに自動的に送信されます。ブラウザはすべての Cookie をチェックします。宣言された Cookie の範囲が要求されるリソースの場所よりも大きい場合、Cookie は要求されたリソースの HTTP ヘッダーに添付され、Cookie の内容が主にサーバーに送信されます。 : 名前、値、有効期限、パスとドメイン、パスとドメインの組み合わせが Cookie のスコープを構成します。有効期限が設定されていない場合、この Cookie のライフサイクルはブラウザ ウィンドウのセッション中であることを意味します。閉じるとクッキーは消えます。ライフサイクルがセッションであるこのタイプの Cookie は、セッション Cookie と呼ばれます。セッション Cookie は通常、ハードディスクには保存されず、メモリに保存されます。有効期限が設定されている場合、ブラウザを閉じて再度開いた後も、ハード ディスクに保存されている Cookie は使用できるようになるまで有効です。異なるブラウザープロセスの共有
セッションメカニズムWEB 開発では、サーバーはユーザーのブラウザーごとにセッション オブジェクト (セッション オブジェクト) を作成できます。 注: 1 つのブラウザーが 1 つのセッション オブジェクトを排他的に所有します。したがって、ユーザー データを保存する必要がある場合、サーバー プログラムはユーザーのブラウザ専用のセッションにユーザー データを書き込むことができ、ユーザーがブラウザを使用して他のプログラムにアクセスすると、他のプログラムがユーザーのセッションからユーザー データを取得できます。ユーザーサービス。
セッションはサーバー側のメカニズムであり、サーバーはハッシュ テーブルに似た構造を使用して情報を保存します。プログラムがクライアントのリクエストに対してセッションを作成する必要がある場合、サーバーはまずクライアントのリクエストにすでにセッションが含まれているかどうかを確認します。 ID (セッション ID と呼ばれます)。
これが含まれている場合、サーバーはセッション ID に従ってこのセッションを取得し、取得できない場合は新しいセッションを作成することを意味します。
クライアントのリクエストにセッション ID が含まれていない場合は、クライアントのセッションを作成し、このセッションに関連付けられたセッション ID の値を、簡単に偽造できない一意で不規則な文字列にする必要があります。セッション ID は、この応答で保存するためにクライアントに返されます。
Cookie を使用してこのセッション ID を保存すると、対話プロセス中にブラウザーがルールに従ってこの ID をサーバーに自動的に送信できます。一般に、この Cookie の名前は SESSIONID に似ていますが、Cookie は人為的に無効にすることができるため、Cookie が無効になってもセッション ID をサーバーに送信できるようにするための他のメカニズムが必要です
一般的に使用されているテクノロジーは
と呼ばれますURL 書き換え は、セッション ID を URL パスの末尾に直接追加することです。 隠しフィールドを作成すると呼ばれるテクニックもあります。つまり、サーバーはフォームを自動的に変更し、次のような隠しフィールドを追加して、フォームの送信時にセッション ID をサーバーに送信できるようにします。 <form name="testform" action="/xxx">
<input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
<input type="text">
</form>
1 つの Cookie によって保存されるデータは 4K を超えることはできません。多くのブラウザでは、サイトで保存できる Cookie は最大 20 個に制限されています
http プロトコルはステートレスですが、多くのアプリケーションではサーバーがクライアントのステータスを把握する必要があります。オンライン ショッピングなど、その場合は Cookie とセッションがその役割を果たします
以上がCookie とセッションの関係と違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。