ホームページ  >  記事  >  php教程  >  PHP における Cookie とセッションの違いの詳細な説明と、Cookie とセッションの使用方法の概要、cookieession

PHP における Cookie とセッションの違いの詳細な説明と、Cookie とセッションの使用方法の概要、cookieession

WBOY
WBOYオリジナル
2016-07-06 14:24:34873ブラウズ

PHPにおけるCookieとセッションの違いの詳細な説明と、Cookieとセッションの使用法の概要

具体的には、Cookieは「クライアント」に保存され、セッションは「サーバー」に保存されます。

Cookieはhttpプロトコルを拡張することで実装されます

Cookieには主に名前、値、有効期限、パス、ドメインが含まれます。

Cookie にライフサイクルが設定されていない場合、ブラウザを閉じると、この種の Cookie は通常、ハードディスクではなくメモリに保存されます。ライフサイクルが設定されている場合は、その逆になります。 true。ブラウザを閉じても、これらの Cookie は設定された有効期限まで有効です。

セッションは情報をハッシュテーブルのような形式で保存します

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

(セッション ID と呼ばれます)。これが含まれている場合、サーバーはセッション ID に従ってこのセッションを取得し、それを使用します (取得できない場合は、新しいもの)。クライアントのリクエストにセッション ID が含まれていない場合は、このクライアントのセッションを作成し、このセッションに関連付けられたセッション ID の値は、重複しない、またはパターンを見つけにくい文字列にする必要があります。このセッション ID は、保存のためにこの応答でクライアントに返されます。このセッション ID を保存する方法には Cookie を使用できるため、対話プロセス中にブラウザーはルールに従ってこの ID をサーバーに自動的に送信できます。通常、この Cookie の名前は SEEESIONID に似ています。ただし、Cookie は人為的に無効にすることができるため、Cookie が無効になっている場合でもセッション ID をサーバーに戻す他のメカニズムが必要です。

メリットとデメリット:

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

2. Cookie はあまり安全ではありません。ローカルに保存されている Cookie を分析して、Cookie を欺く可能性があります。 セキュリティ上の理由からセッションを使用する必要があります。

3. セッションは一定期間内にサーバーに保存されます。アクセスが増加すると、サーバーのパフォーマンスがより多く消費されます

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


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


5. 個人的な提案:

ログイン情報などの重要な情報をSESSIONとして保存


他の情報を保持する必要がある場合は、COOKIEに配置できます

セッションとCookieの使用の概要:

セッションと cookie はどちらも asp.Net の組み込みオブジェクトです。ここでは、その違いについては詳しく説明しません。


Web サイトには、ログインとログアウトの 2 つの機能があるバックエンド管理システムがあることがわかっています。ログイン時には、後で使用できるようにユーザーの情報をセッションまたは Cookie に保存することが多いため、ログイン時に注意する必要があります。 ?


1. 機密情報をセッションに保存します。たとえば、ユーザー名はそれほど機密性の高いものではありませんが、一部のブラウザでは Cookie の使用をサポートしていないため、保存します。ただし、セッションはサーバーで簡単に失われることがあるので、Cookie と組み合わせて使用​​できます。つまり、セッションが失われた場合でも、Cookie が設定した有効期間内であれば、使用できます。再度 Cookie から値を取り出してセッションに追加するため、セッションと Cookie を使用してユーザー名とその他の情報を同時に保存するか、設定ファイルに保存することをお勧めします


コードをコピーします コードは次のとおりです:


セッション損失の問題も解決できます


2. 長時間操作がなかった場合、バックグラウンド管理がセッションを無効にして再ログインすることを希望します。session.timeout=5 を使用できます。これは、5 秒以内に他の操作がなかった場合を意味します。または、構成ファイルで を構成することもできます。


3. Cookieの有効期間の設定


httpCookie.Expires = DateTime.Now.AddMinutes(2);


クッキーの有効期限は2分間です


4. Web ページへのアクセス許可があるかどうかを判断する場合は、次のように判断できます。

リーリー


次に、退出するときに何をすべきかについて話しましょう

1. セッションと Cookie の値は終了時にクリアされます。次に、セッションのいくつかの方法の違いについて簡単に説明します。

Session.clear(): セッション内のすべてのセッションキー値をクリアすることを意味しますが、セッションはまだ存在しており、Session.RemoveAll() と同等です


Session["admin"]=null: 指定されたキーの値がクリアされて解放されることを示します。これは、クリアされますが、セッションは解放されません。 session.Remove ("name");
と同等です。

Session.Abandon() は現在の Session オブジェクトを削除し、次回は新しい Session になります。

主な違いは、Session.Abandon を使用する場合、Session_End メソッド (InProc モード) が呼び出されることです。 Session_Start メソッドは、次のリクエストが来たときに起動されます。そして、Session.Clear はセッション内のすべてのデータをクリアするだけであり、

Session なので、これらのメソッドは呼び出されません。このメソッドが呼び出されない場合、Abandon メソッドはセッションがタイムアウトすると自動的に終了します。

2. Cookieをクリアする方法を見てみましょう

A. tpCookie cookie = System.Web.HttpContext.Current.Request.Cookies.Get("tuser");

cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

B, tpCookie httpCookie = Request.Cookies["httpCookie"];

httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie);

両方の方法が利用可能です

3. したがって、セッションの現在の値、つまりSession["admin']=nullをクリアするだけです。上記の方法に従ってCookieをクリアするだけです

提案とコメント:

1. 終了するときに、時間を書き込むためのログアウト ページを作成できます。

2. どのような操作を実行しても、If を使用して空であるかどうかを判断できる場合は、null ポインター例外の発生を防ぐように最善を尽くしてください。

上記は、PHP における Cookie とセッションの違いの詳細な説明と、編集者による Cookie とセッションの使用法の概要です。ご質問があれば、メッセージを残してください。編集者は全員にすぐに返信します。また、Bangkejia ウェブサイトをサポートしてくださった皆様にも感謝いたします。

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