ホームページ  >  記事  >  バックエンド開発  >  Cookie、セッション、ストレージの機能概要

Cookie、セッション、ストレージの機能概要

一个新手
一个新手オリジナル
2017-09-18 10:21:391356ブラウズ


1. Cookie

1. Cookie: クライアントとサーバー間の対話情報を記録します。
Cookie の仕様は、サーバーとクライアント間の対話型情報の形式、有効期間、使用範囲、およびセキュリティを定義します。
この情報は、document.cookie を介して JavaScript で読み取りまたは設定できます。 Cookie は主にクライアントとサーバー間の通信に使用されるため、JavaScript に加えてサーバー側言語 (PHP など) も Cookie にアクセスできます。

2. Cookieは、リモートブラウザにデータを保存し、ユーザーを追跡および識別するために使用するメカニズムです。 実装に関しては、Cookie はクライアントに保存される小さなデータであり、ブラウザ (つまりクライアント) は HTTP プロトコルを通じてサーバーと通信します。 Cookie にはサイズ制限があり、各 Cookie に保存されるデータは 4kb を超えることはできません。Cookie 文字列の長さが 4kb を超える場合、この属性は空の文字列を返します。

3. Cookie はブラウザによって実装および管理されます。

4. Cookie 自体の属性には、「Comment」、「Domain」、「Max-Age」、「Path」、「Secure」、「Version」が含まれます。具体的な使用法については、「JavaScript 操作 Cookie」を参照してください。

Comment 属性は、Cookie によって生成される Cookie の説明です。一部の大規模な Web サイトでは、Cookie をサブで共有する場合、

Domain 属性は Cookie にアクセスできるドメイン名を定義します。 -sites では、この属性を使用できます。たとえば、ドメインが .bigsite.com に設定されている場合、sub1.bigsite.com と sub2.bigsite.com の両方がクライアントに保存されている Cookie にアクセスできます。この場合、パスは / に設定する必要があります。

Max-Age この属性は、Cookie の有効期間を秒単位で定義します。有効期間を超えると、HTTP メッセージ ヘッダーで Cookie 情報がクライアントからサーバーに送信されなくなります。

Path この属性は、Cookie にアクセスできる Web サイト上のページのパスを定義します。デフォルトでは、Path は Cookie が生成されたときのパスです。現時点では、このパスの下のページから Cookie にアクセスできます。パスは / に設定できるため、Web サイト内のすべてのページから Cookie にアクセスできます。

Secure 属性値は Cookie のセキュリティを定義します。値が true の場合、Cookie がクライアントから HTTP メッセージに添付されてサーバーに送信される前に、Cookie は HTTPS 状態でなければなりません。 Cookie は送信されません。Secure が false の場合、Cookie は HTTP 状態で渡されます。Secure はデフォルトで false になります。

Version 属性は、Cookie の作成者によって定義されたように、Cookie のバージョンを定義します。

5. Cookie の使用:
記録される情報はサーバーによって作成され、クライアントは HTTP メッセージから情報を取り出してローカル ディスクに保存します。クライアントがサーバーに再度アクセスすると、最初に保存された情報をローカル ディスクから読み取り、それを HTTP メッセージに添付してサーバーに送信します。サーバーは HTTP メッセージから情報を読み取り、必要に応じてさらなる処理を実行します。実際のアプリケーション。

6. Cookie 情報はテキスト ファイルに平文で保存されるため、パスワードや銀行口座番号などの一部の機密情報をローカル Cookie ファイルに保存する場合は、暗号化された形式を使用するのが最善です。

2. セッションの詳細説明

1. セッションは応答であり、継続的な双方向の接続を指します。セッションと Cookie の間には本質的に違いはありません。どちらも、HTTP プロトコルの制限に応じてクライアントとサーバー間のセッション接続状態を維持するために提案されたメカニズムです。 Session も普遍的な標準ですが、言語ごとに実装方法が異なります。 Web Web サイトの場合、セッションとは、ユーザーが Web サイトにアクセスしてから、Web サイトを閲覧するときにブラウザを閉じるまでのセッションを指します。 セッションは実際には時間の特定の概念です
2. セッションは、セッション ファイルのファイル名であるセッション ID によってクライアント ユーザーを決定します。 sessionID は実際には、HTTP リクエストと HTTP レスポンスを通じてクライアントとサーバーの間で渡されます。 sessionID は特定のアルゴリズムに従って生成され、セッションのセキュリティを確保するために一意性とランダム性を確保するために HTTP リクエストに含める必要があります。セッション生成周期が設定されていない場合は、セッションIDがメモリに保存され、ブラウザ終了後に自動的にログアウトされ、ページを再リクエストした際にセッションIDが再登録されます。クライアントが Cookie を無効にしない場合、Cookie は、Session セッションの開始時にセッション ID とセッションの有効期間を保存する役割を果たします。セッションの有効期限が切れると、PHP はセッションをリサイクルします。

3. セッションと Cookie の違い:

1. セッションはサーバー側にあり、Cookie はクライアント側 (ブラウザー) にあります。
2. セッションはメモリ内ではなく、サーバー上のファイルに存在します。 3. セッションのセッション ID の実行依存関係。セッション ID は Cookie に保存されます。つまり、ブラウザーが Cookie を無効にすると、セッションも無効になります (もちろん、URL で渡すこともできます)
4. セッションはファイル、データベース、またはメモリに配置できます。どちらでも問題ありません。
5. セッションは通常、ユーザーの検証に使用されます。したがって、セッションを維持するための中心となるのは、セッション ID です。サーバーサービスのパフォーマンス。 Cookie によって保存されるデータには制限があります
7. セッションはオブジェクトを保存し、Cookie は文字列型のキーと値のペアを保存します。

説明
: HTTP プロトコルはステートレス プロトコルであるため、サーバーがユーザーのステータスを記録する必要がある場合、特定のユーザーを識別するために何らかのメカニズムを使用する必要があります。このメカニズムは、ショッピングなどの典型的なシナリオです。カートをクリックすると、HTTP プロトコルはステートレスであるため、どのユーザーが操作しているかがわかりません。そのため、サーバーはユーザーを識別し、ユーザーを追跡するために特定のセッションを作成する必要があります。ショッピングカートにはたくさんの本が入っています。このセッションはサーバー側に保存され、一意の識別子を持ちます。 サーバー側でセッションを保存するには、メモリ、データベース、ファイルなど、さまざまな方法があります。
大規模な Web サイトでは、通常、ユーザー セッションを保存するための専用のセッション サーバー クラスターが存在し、セッション情報はメモリに保存され、Memcached などのいくつかのキャッシュ サービスが使用されます。セッションを入れます。 考えてみてください サーバーはどのようにして特定の顧客を識別するのでしょうか
?このとき、Cookieがステージに登場します。 HTTP リクエストが行われるたびに、クライアントは対応する Cookie 情報をサーバーに送信します。実際、ほとんどのアプリケーションはセッション追跡を実装するために Cookie を使用します。セッションが初めて作成されると、サーバーは HTTP プロトコルでクライアントにセッション ID を Cookie に記録する必要があることを通知します。その後のリクエストではセッション ID がサーバーに送信され、あなたが誰であるかがわかります。誰かが、クライアントのブラウザが Cookie を無効にしている場合はどうすればよいのかと尋ねました。通常、この場合、セッション追跡には URL 書き換えと呼ばれるテクノロジーが使用され、HTTP 対話ごとに sid=xxxxx などのパラメーターが URL に追加され、サーバーはこれを使用してユーザーを識別します。 Cookie は実際にいくつかのユーザーフレンドリーなシナリオで使用できます。一度 Web サイトにログインした後、次回ログインするときにアカウントを再度入力したくない場合はどうすればよいでしょうか。この情報は Cookie に書き込まれるため、Web サイトにアクセスすると、Web サイトのページのスクリプトがこの情報を読み取り、ユーザー名を自動的に入力することができるため、ユーザーは簡単に入力できます。クッキー名の由来でもある、ユーザーへのちょっとした甘さ。要約すると、セッションはユーザーのステータスを追跡するためにサーバーに保存されるデータ構造であり、このデータはクラスター、データベース、およびファイルに保存できます。Cookie はクライアントがユーザー情報を保存するメカニズムであり、一部の情報を記録するために使用されます。ユーザー情報もセッションを実装する方法です。
4. Web ストレージ

Web ストレージは、クライアント上にデータを保存する新しい方法を提供します。localStorage と sessionStorage を使用して、ローカルにデータベースを作成できます。サーバー側のデータベースの内容をクライアントのローカルに直接保存できるため、サーバーの負担が大幅に軽減され、データ アクセスが高速化されます。

1. localStorage: データは永続的に保存されます。データをクライアントのローカル ハードウェア デバイス (ハードディスクまたはその他のハードウェア デバイス) に保存すると、ブラウザを閉じてもデータは残ります。 localStorage のスコープはドキュメント ソース レベルに制限されています。異なるドキュメント ソースは相互にデータを読み取ったり変更したりすることはできませんが、同じドキュメント ソースであれば可能です。ただし、異なるブラウザはストレージを共有しません。つまり、たとえ同じドキュメント ソースであっても、Chrome ブラウザに保存したデータに Firefox からアクセスすることはできません。

2. sessionStorage: データの一時ストレージ。データはセッション オブジェクトに保存されます。保存時間は、Web ページにアクセスしてからブラウザの Web ページを閉じるまでの時間です。 sessionStorage の範囲はドキュメント ソース レベルに限定されるだけでなく、異なるタブ内の同じページにも独自の sessionStorage が存在し、データを共有することはできません。ページ内に 2 つの iframe 要素がある場合、これらの要素は sessionStorage を共有します。

以上がCookie、セッション、ストレージの機能概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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