1. さまざまなストレージ ソリューションの簡単な比較
Cookie: すべてのブラウザーでサポートされ、容量は 4KB です
UserData: IE のみでサポートされ、容量は 64KB です
Flash: 100KB、非 HTML ネイティブ、プラグインのサポートが必要です
Google Gears SQLite: プラグインのサポートが必要、容量は無制限
LocalStorage: HTML5、容量は 5M
SesstionStorage: HTML5、容量は 5M
globalStorage: Firefox に固有、Firefox13 ではこのメソッドはサポートされなくなりました
UserData はIE、Google Gears、SQLite でサポートされており、Flash は HTML5 の出現とともに徐々に歴史の舞台から退いており、今日の主役は Cookie、LocalStorge、SessionStorge
2 の 3 つだけです。
Cookie を扱うフロントエンドとして Cookie は比較的古いテクノロジーで、1993 年に、ユーザーがアクセスする際のアクセス速度をさらに向上させるために、現在広く使用されている Cookie を発明しました。ウェブサイトと同時にパーソナライズされたネットワークを実現するために Cookie が使用されます。 2.1 Cookie の特徴 まず Cookie の特徴を見てみましょう: 1) Cookie のサイズは 4KB に制限されており、大きなファイルや電子メールなどの大きなデータを受け入れることができません。 2) Cookie を含むリクエストがある限り、Cookie はサーバーとブラウザの間で送受信されます (これが、ローカル ファイルが Cookie をテストできない理由の説明になります)。さらに、Cookie データは常に同じオリジンからの http リクエストに含まれます (必要でない場合でも)。これは、Cookie が大きくなりすぎない重要な理由でもあります。オーソドックスな Cookie の配布は、HTTP プロトコルを拡張することによって実現され、サーバーは HTTP 応答ヘッダーに特別な命令行を追加し、その命令に従って対応する Cookie を生成するようブラウザに指示します。 3) ユーザーがサーバーデータをリクエストするたびに、そのリクエストとともに Cookie がサーバーに送信されます。PHP などのサーバースクリプト言語は、Cookie によって送信されたデータを処理でき、非常に便利であると言えます。もちろんフロントエンドでもCookieを生成することはできますが、Cookieをjsで操作するのはブラウザがdocument.cookieなどのオブジェクトを提供するだけですし、Cookieの割り当てや取得も面倒です。 PHP では、setcookie() を通じて Cookie を設定し、スーパーグローバル配列 $_COOKIE を通じて Cookie を取得できます。 Cookie の内容には主に、名前、値、有効期限、パス、ドメインが含まれます。パスとドメインを合わせて Cookie のスコープを形成します。有効期限が設定されていない場合、この Cookie の有効期間はブラウザ セッション中にあり、ブラウザ ウィンドウを閉じると Cookie は消えます。ブラウザーのセッション中に保持されるこのタイプの Cookie は、セッション Cookie と呼ばれます。セッション Cookie は通常、ハードディスクではなくメモリに保存されます。もちろん、この動作は仕様では指定されていません。有効期限が設定されている場合、ブラウザは Cookie をハードディスクに保存します。ブラウザを閉じて再度開いた場合でも、設定された有効期限が経過するまでこれらの Cookie は有効です。ハード ドライブに保存された Cookie は、2 つの IE ウィンドウなど、異なるブラウザ プロセス間で共有できます。ブラウザが異なれば、メモリに保存された Cookie の処理方法も異なります。 2.2 セッション Cookie に関して言えば、セッションについて話さずにはいられません。 セッションメカニズム。セッション メカニズムはサーバー側のメカニズムであり、サーバーは情報を保存するためにハッシュ テーブルに似た構造を使用します (またはハッシュ テーブルを使用する場合もあります)。プログラムがクライアントのリクエストに対してセッションを作成する必要がある場合、サーバーはまずクライアントのリクエストにセッション識別子 (セッション ID と呼ばれます) が含まれているかどうかを確認します。含まれている場合は、このクライアントに対してセッションが以前に作成されていることを意味します。サーバーはセッション ID に従ってセッションを取得し、それを使用します (取得できない場合は、新しいセッションが作成されます)。クライアントのリクエストにセッション ID が含まれていない場合は、クライアント用にセッションが作成されます。このセッションに関連付けられたセッション ID が生成されます。セッション ID の値は、繰り返されず、模倣するパターンが簡単に見つからない文字列である必要があります。このセッション ID は、保存のためにこの応答でクライアントに返されます。このセッション ID を保存する方法には Cookie を使用できるため、対話プロセス中にブラウザーはルールに従ってこの ID をサーバーに自動的に送信できます。通常、この Cookie の名前は SEEESIONID に似ています。ただし、Cookie は人為的に無効にすることができるため、Cookie が無効になっている場合でもセッション ID をサーバーに戻す他のメカニズムが必要です。頻繁に使用される手法は URL 書き換えと呼ばれ、URL パスの末尾にセッション ID を直接追加します。例: http://damonare.cn?sessionid=123456 フォーム隠しフィールドと呼ばれるテクノロジーもあります。つまり、サーバーは自動的にフォームを変更し、非表示フィールドを追加して、フォームの送信時にセッション ID をサーバーに返すことができるようにします。例: