ホームページ >バックエンド開発 >PHPチュートリアル >PHP セッション制御 Cookie とセッション

PHP セッション制御 Cookie とセッション

肚皮会动
肚皮会动オリジナル
2017-11-14 14:26:201958ブラウズ

PHP セッション制御: SessionCookie の詳細な説明、session cookie

1. セッション制御とは

HTTP はステートレス プロトコルであり、2 つを維持するための組み込みメカニズムがありません。トランザクション間のステータス。ユーザーがあるページをリクエストし、次に別のページをリクエストした場合、HTTP では両方のリクエストが同じユーザーからのものであることを知ることができません。

セッション制御の概念は、Web サイト内のセッションに従ってユーザーを追跡できるようにすることで、ユーザーのログインを簡単にサポートし、認証レベルや個人の好みに応じて対応するコンテンツを表示できるようにすることです。 on session このユーザー動作により、ショッピング カートを実装することもできます。

2. 基本的なセッション関数を理解する

PHP セッションは、暗号化された乱数である一意のセッション ID によって駆動されます。これは PHP によって生成され、セッションのライフサイクル中にクライアントに保存されます。ユーザーのマシン上の Cookie に保存することも、URL を介してネットワーク上に渡すこともできます。

セッション ID はキーのようなもので、これを使用していくつかの特定の変数を登録でき、それらの変数もセッション変数になります。これらの変数の内容はサーバー側に保存されます。セッション ID は、クライアントに表示される唯一の情報です。クライアントが特定の Web サイトのリンク中に Cookie または URL を介してセッション ID を確認できる場合、そのセッションに関してサーバーに保存されているセッション変数にアクセスできます。デフォルトでは、セッション変数はサーバー上の通常のファイルに保存されます。

URL にセッション ID を保存します。URL に乱数の文字列がある場合、それは何らかのセッション制御である可能性があります。

Cookie はセッションとは異なるソリューションであり、クリーンな URL を維持しながら、複数のトランザクションにわたって状態を維持するという問題も解決します。

セッション制御プロセス: ユーザーが初めてサイトのページにログインまたは閲覧すると、サイトは PHP セッション ID を生成し、Cookie を通じてクライアント (ブラウザー) に送信します。ユーザーがサイト上の別のページをクリックすると、ブラウザはこの URL への接続を開始します。接続する前に、ブラウザーはまずローカルに保存された Cookie を検索し、接続中の URL に関連する Cookie があれば、それをサーバーに送信します。ログイン時または初めて接続した際に、WebサイトのURL(保存されたセッションID)に関連付けられたCookieが生成されているため、ユーザーが再度このサイトに接続したとき、サイトはこのセッションIDによってユーザーを識別できます。このセッション ID に関連するセッション変数は、トランザクション間の連続性を維持するためにサーバーのセッション ファイルから取得されます。

3. Cookie とは何ですか? Cookie はサーバー側で作成され、ブラウザーは応答ヘッダーに Cookie を書き込む命令を受け取り、ローカルの一時フォルダーに保存します。 Cookie コンテンツが保存される Cookie ファイルが作成されます。Cookie コンテンツはキーと値のペアで保存されます。キーと値は両方とも文字列のみにすることができます。

Cookie は実際には、スクリプトによってクライアント マシンに保存できる小さな情報です。 Cookie は、次の形式で特定のデータを含む HTTP ヘッダーを送信することでユーザーのマシンに設定できます:

Set-Cookie: NAME = VALUE; [expires=DATE;] [path=PATH;] [domain= DOAMIN_NAME;] [secure]

これにより、値が VALUE の NAME という名前の Cookie が作成されます。このパラメータを除き、他のすべてのパラメータはオプションです。有効期限フィールドは、Cookie の有効期限を設定します (有効期限が設定されていない場合、手動で削除しない限り永久に有効になります)。パスとドメインのフィールドを組み合わせて、URL または Cookie 関連の URL を作成します。 secure キーワードは、通常の HTTP 接続では Cookie がアクティブ化されないことを意味します。

ブラウザが URL に接続すると、まずローカルに保存された Cookie が検索されます。接続中の URL に関連付けられた Cookie がある場合、ブラウザはそれをサーバーに送信します。

4. セッションとは

セッションは、アプリケーションサーバーによって維持されるサーバー側のストレージスペースであり、ユーザーがサーバーに接続すると、サーバーによって一意のセッションIDが作成および生成され、このセッションIDはサーバー側にアクセスするための識別子として使用されます。セッションストレージスペースは、セッション中に割り当てられます。クライアントに与えられた一意のセッションIDは、現在のユーザーを識別し、他のユーザーと区別するために使用されます。 SessionID を介して各アクセス要求を受け入れ、現在のユーザーを識別し、ユーザー固有の情報とセッション変数を追跡および維持します。セッション変数は、セッションに数値またはテキスト情報を保存します。この情報はサーバー側に保存されます。もちろん、セッション ID をセッション情報としてデータベースに保存し、セッションを永続化することもできます。これにより、ユーザーのログイン数、オンラインかどうか、オンライン時間などを追跡できるため、HTTP ステートレスなもの間の関係が維持されます。セッションのコンテンツ ストレージはキーと値のペアのリストであり、キーは文字列型です。セッションのストレージはより便利で、値はオブジェクトにすることができます。

セッション中、セッションはクライアントとサーバーの 2 つのファイルにそれぞれ保存されます。クライアントはセッション ID を Cookie モード (デフォルトの保存方法) で保存するか、URL 文字列の形式で渡すことができます。サーバー側は通常、指定されたセッションディレクトリにテキスト形式で保存されます。サーバー側では、session.use_cookies を通じてクライアントが使用するストレージ メソッドを制御できます。 Cookie の保存方法として定義されている場合、session.cookie_lifetime を通じてクライアントに保存される Cookie の有効期間を制御できます (デフォルト値は 0、ブラウザを閉じるとクリアされます)。クライアントが Cookie を使用してセッション ID を保存する場合は、「一時的な」Cookie を使用してセッション ID を保存します (Cookie の名前は PHPSESSID です。詳細情報は Firebug で確認できます。名前は php.ini session.name で変更できます) ) 、ユーザーがページを送信すると、セッション データにアクセスするためにこの SessionID がサーバーに送信されます。このプロセスには開発者の介入は必要ありません。

5. SESSION と COOKIE の違いと接続

同じ点: どちらも HTTP ステートレスの問題を解決できるため、同じクライアントが複数のリクエストで情報を保存および設定し、Web サイト間の接続を確立できます。

違い: 簡単に言うと、Cookie 情報はクライアント側に保存され、セッション情報はサーバー側に保存されます。

セッションはキーと値のペアを使用します。これは、ID がクライアント側に保存され、値がサーバー側に配置されることを意味します。このように、ユーザーの ID はサーバー上で対応する値を見つけるために使用されます。値はサーバー側に置かれ、制限時間が経過すると、サーバーが自動的にリサイクル/解放します。

Cookieには2つの方法があり、1つはブラウザの変数に値を保存し、ブラウザを閉じると終了します。もう1つは、期限切れにならない限り、保存することができます。次回使用します。

連絡先: クライアントがCookieメソッドに基づいて保存されたSessionIDを使用する場合、通常、SessionIDはCookieに保存されます。

注: Cookie は、同じコアを持つブラウザ間で共有されます。Firefox と IE など、異なるコアを持つブラウザは共有されません (保存場所が異なるため、当然共有されません)。カーネルが異なるブラウザは Cookie を共有できず、異なるセッション ID も生成します。

以上はPHPセッション制御について詳しく説明しましたので、お役に立てれば幸いです。

関連する推奨事項:

PHP セッション コントロール: セッションと Cookie の詳細な説明、sessioncookie

php セッション コントロール、php セッション

php セッション コントロールのサンプル コードの詳細な紹介

php セッションCookie とセッションの制御_セッション処理_PHP チュートリアル

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

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