ホームページ >バックエンド開発 >PHPチュートリアル >Cookieとセッションの定義と違い

Cookieとセッションの定義と違い

小云云
小云云オリジナル
2017-11-09 13:21:371481ブラウズ

2 つの定義:

Web サイトを閲覧すると、WEB サーバーはまず少量のデータをお客様のコンピュータに送信し、Cookie は Web サイト上でテキストや選択肢を入力するのに役立ちます。

すべて記録されます。次回同じウェブサイトにアクセスすると、WEBサーバーは前回残したCookie情報があるかどうかを確認し、あればCookie

の内容に基づいてユーザーを判断し、特定のWebページを送信します。コンテンツをあなたに。 Cookie の使用は非常に一般的であり、パーソナライズされたサービスを提供する多くの Web サイトは、ユーザーに合わせたコンテンツを送信できるように Cookie

を使用します。

具体的には、Cookie メカニズムはクライアント側で状態を維持するソリューションを使用し、セッション メカニズムはサーバー側で状態を維持するソリューションを使用します。

同時に、サーバー側で状態を維持するソリューションでは、クライアント側でも ID を保存する必要があるため、保存の目的を達成するには、セッションメカニズムで Cookie メカニズム

を使用する必要がある可能性があることもわかります。アイデンティティですが、実際には別の選択があります。

Cookieのメカニズム。オーソドックスな Cookie の配布は、HTTP プロトコルを拡張することによって実現され、サーバーは HTTP 応答ヘッダーに特別な命令行を追加し、その命令に従って対応する Cookie を生成するようブラウザに指示します。ただし、JavaScript や VBScript などの純粋なクライアント側スクリプトも Cookie を生成する可能性があります。 Cookie の使用は、特定の原則に従ってバックグラウンドでブラウザによってサーバーに自動的に送信されます。ブラウザは、保存されているすべての Cookie をチェックします。宣言された Cookie のスコープが、要求されるリソースの場所以上である場合、Cookie は要求されたリソースの HTTP 要求ヘッダーに添付され、サーバーに送信されます。

Cookie の内容には主に、名前、値、有効期限、パス、ドメインが含まれます。パスとドメインを合わせて Cookie のスコープを形成します。有効期限が設定されていない場合、この Cookie の有効期間はブラウザ セッション中にあり、ブラウザ ウィンドウを閉じると Cookie は消えます。ブラウザーのセッション中に保持されるこのタイプの Cookie は、セッション Cookie と呼ばれます。

セッション Cookie は通常、ハードディスクではなくメモリに保存されます。もちろん、この動作は仕様で規制されていません。有効期限が設定されている場合、ブラウザは Cookie をハード ドライブに保存します。ブラウザを閉じて再度開いても、設定された有効期限が経過するまでこれらの Cookie は有効です。ハード ドライブに保存された Cookie は、2 つの IE ウィンドウなど、異なるブラウザ プロセス間で共有できます。メモリに保存される Cookie の場合、ブラウザごとに処理方法

セッション メカニズムが異なります。セッション メカニズムはサーバー側のメカニズムであり、サーバーは情報を保存するためにハッシュ テーブルに似た構造を使用します (またはハッシュ テーブルを使用する場合もあります)。


プログラムがクライアントのリクエストに対してセッションを作成する必要がある場合、サーバーはまずクライアントのリクエストにセッション識別子

(セッション ID と呼ばれる) が既に含まれているかどうかを確認します。含まれている場合は、このクライアントが以前に使用されたことを意味します。クライアントがセッションを作成している場合、サーバーはセッション ID に従ってセッションを取得し、それを使用します (取得できない場合は、クライアントのリクエストにセッション ID が含まれていない場合は、新しいセッションが作成されます)。セッション ID は、クライアントに対して作成され、セッションに関連付けられたセッション ID の値は、繰り返されず、偽造のパターンも容易ではない文字列である必要があります。この応答で保存するためにクライアントに返されます

。このセッション ID を保存する方法では Cookie を使用できるため、対話プロセス中にブラウザーがルールに従ってこの識別子を

サーバーに自動的に送信できます。通常、この Cookie の名前は SEEESIONID に似ています。ただし、Cookie は人為的に無効にすることができ、Cookie が無効になってもセッション ID をサーバーに戻すことができるようにするための他のメカニズムが必要です。

頻繁に使用される手法は URL 書き換えと呼ばれ、URL パスの末尾にセッション ID を直接追加します。フォーム隠しフィールドと呼ばれる手法もあります。つまり、サーバー

はフォームを自動的に変更し、隠しフィールドを追加して、フォームが送信されたときにセッション ID をサーバーに返すことができるようにします。例:

= " text">

実際、この手法はアクションに URL 書き換えを適用するだけで置き換えることができます。

Cookieとセッションの違い:

1. Cookieデータは顧客のブラウザに保存され、セッションデータはサーバーに配置されます。

2. Cookie はあまり安全ではありません。ローカルに保存された COOKIE を他人が解析して COOKIE を欺く可能性があります

セキュリティを考慮して、セッションを使用する必要があります。

3. セッションはサーバーに一定期間保存されます。アクセスが増えるとサーバーのパフォーマンスをさらに消費します

サーバーのパフォーマンスを下げることを考慮して、COOKIEを使用する必要があります。

4. 1 つの Cookie によって保存されるデータは 4K を超えることはできません。サイトでは 20 個の Cookie まで保存できます。

5. 個人的な提案:
ログイン情報などの重要な情報を SESSION として保存する
他の情報を保持する必要がある場合は、COOKIE に置くことができます


以上がCookieとセッションの定義と違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。