ホームページ >バックエンド開発 >PHPチュートリアル >PHP セッションの原則
ご存知のとおり、http プロトコルはステートレス プロトコルであり、簡単に言えば、Web サーバーは現在接続しているユーザーが誰であるかを知りません。これに基づいて、多くの拡張が行われています。この目的を達成するため、デジタル署名、Cookie、セッションなど。
Web サーバーまたは Web プログラムは、現在誰が接続しているかをどのようにして知ることができるのでしょうか?この問題を解決するには、まずサーバーとクライアントの間で 1 対 1 の対応関係を確立する必要があります。以下では、http のコンテンツを取得してこの対応関係を確立する方法を説明します。
httplook という http パケット スニッフィング ツールを使用し、ローカル Web サーバーのルート ディレクトリに test.php というファイルを作成します。アドレスは http://localhost/test.php です。ブラウザでこのページを繰り返し開きます。
;
以下は、サーバーに送信される最初の 2 つのメッセージとサーバーから返される情報です
引用:
「最初のリクエスト」サーバーへ " 投稿者:
GET /test.php HTTP/1.1
Accept: */*
Referer: http://localhost/
Accept-Language: zh-cn
Accept-Encoding: gzip、deflate
User -エージェント: Mozilla /4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
ホスト: localhost
接続: キープアライブ
元の投稿者:「初めてサーバーが返されました」 投稿者:
HTTP/1.1 200 OK
日付: Fri, 26 Aug 2005 07:44:22 GMT
サーバー: Apache/2.0.54 (Win32) SVN/1.2。 1 PHP/5.0.4 DAV/2
キャッシュなし、必須再検証、事後チェック = 0、事前チェック = 0
プラグマ: キャッシュなし
Content-Length: 1
キープアライブ: タイムアウト = 15、 max=99
接続: キープアライブ
コンテンツ タイプ: text/html; charset=utf-8
コンテンツ言語: オフ
引用:
GET /test.php HTTP/1.1
Accept: */* Referer: http://localhost/
Accept-Language: zh-cn
Accept-Encoding: gzip、deflate
User-Agent: Mozilla/ 4.0 (互換性; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)
ホスト: localhost
接続: キープアライブ
Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
引用:
HTTP/1.1 200 OK
日付: Fri, 26 Aug 2005 07:44:23 GMT サーバー: Apache/2.0.54 (Win32) SVN/1.2.1 PHP/5.0.4 DAV/2
、must-revalidate、post-check=0、pre-check=0
プラグマ: キャッシュなし
Content-Length: 1
Keep-Alive: timeout=15、max=98
接続: Keep-Alive
Content-Type : text/html;
Content-Language: Off
これらの出力を注意深く比較すると、2 番目のリクエストには最初のリクエストよりも多くの情報が含まれています。 PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
このヘッダー Cookie 情報がサーバーに送信され、PHPSESSID という名前の Cookie があり、その内容が bmmc3mfc94ncdr15ujitjogma3 であることがサーバーに伝えられます。
これは、クライアントのブラウザーに Cookie を書き込むサーバーです。名前は PHPSESSID、値は bmmc3mfc94ncdr15ojitjogma3 です。実際にはいわゆる session_id です。
引き続きサーバーへの 2 番目のリクエストを確認すると、Cookie PHPSESSID が依然としてサーバーに送信されています
次の結論が導き出されます:
1. セッションが使用されている限り、セッションはクライアントに送信されます。 Cookie を介したブラウザ
2、サーバーにリクエストが行われるたびに、ローカル ブラウザはリクエスト情報に Cookie を添付します
この時点で、サーバーとクライアントがどのように 1 対 1 の対応を実現するかについての答えは、セッションは非常に明確です。これを理解してください。真実はセッションを使用する際に非常に役立ちます。よく理解してください。
リダイレクト: http://bbs.chinaunix.net/viewthread.php?tid=600493