Cookieとセッションの違いを詳しく解説
これらは基礎知識ですが、深く理解する必要があります。まずは簡単に紹介しましょう。
この 2 つの定義:
Web サイトを閲覧すると、まず WEB サーバーが小さな情報をユーザーのコンピュータに送信し、Cookie はユーザーがその情報を入力するのに役立ちます。テキストまたは一部の選択が
記録されます。次回同じWebサイトにアクセスすると、まずWEBサーバーが前回残したCookie情報があるかどうかを確認し、存在する場合はCookie
の内容に基づいてユーザーを判断して送信します。あなたへの特別なウェブコンテンツ。 Cookie の使用は非常に一般的であり、Web インターフェイスを備えた無料の電子メール Web サイトなど、パーソナライズされたサービスを提供する多くの Web サイトでは、ユーザーに合わせたコンテンツを送信するために Cookie
が使用されます。
具体的には、Cookie メカニズムはクライアント側で状態を維持するソリューションを使用し、セッション メカニズムはサーバー側で状態を維持するソリューションを使用します。
同時に、サーバー側で状態を維持するソリューションではクライアント側にも ID を保存する必要があるため、セッション メカニズムで Cookie メカニズムを使用する必要がある可能性があることもわかります
ID を保存するという目的を達成するためですが、実際には他のオプションもあります。
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 と呼ばれます) が含まれているかどうかを確認します。含まれている場合は、Contains がそれを示します。このクライアントに対して以前にセッションが作成されており、サーバーはセッション ID に従ってこのセッションを取得します (取得できない場合は、クライアント リクエストに次のものが含まれていない場合は、新しいセッションが作成されます)。この目的のために、クライアントはセッションを作成し、このセッションに関連付けられたセッション ID を生成します。セッション ID の値は、繰り返されず、偽造するパターンも簡単に見つけられない文字列である必要があります。は、この応答 でクライアントに返され、保存されます。このセッション ID を保存する方法では Cookie を使用できるため、対話プロセス中に、ブラウザーはルールに従ってこの識別子を サーバーに自動的に送信できます。通常、この Cookie の名前は SEEESIONID に似ています。ただし、Cookie は人為的に無効にすることができ、Cookie が無効になってもセッション ID をサーバーに戻すことができるようにするための他のメカニズムが必要です。 頻繁に使用される手法は URL 書き換えと呼ばれるもので、URL パスの末尾にセッション ID を直接追加します。フォーム隠しフィールドと呼ばれる手法もあります。つまり、サーバー はフォームを自動的に変更し、非表示フィールドを追加して、フォームの送信時にセッション ID をサーバーに返すことができるようにします。例えば: ######<form name="testform" action="/xxx"> <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764"> <input type="text"> </form>
実際、この手法は、アクションに URL 書き換えを適用することで簡単に置き換えることができます。
Cookie とセッションの違い:
1. Cookie データはクライアントのブラウザに保存され、セッション データはサーバーに配置されます。
2. Cookie はあまり安全ではありません。ローカルに保存された COOKIE を他人が解析して COOKIE を欺くことができるため、セキュリティを考慮してセッションを使用する必要があります。
サーバーのパフォーマンスを下げることを考慮して、COOKIE を使用する必要があります。
ログイン情報などの重要な情報を SESSION として保存する
他の情報を保持する必要がある場合は、COOKIE に配置できます
以上がCookieとセッションの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。