PHP セッションの原則

Jun 23, 2016 pm 02:35 PM

ご存知のとおり、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
コンテンツ言語: オフ





引用:

元の投稿は「第 2 リクエスト サーバー」によって投稿されました":

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





引用:

元の投稿者: 「サーバーが 2 回返されました」 投稿者:

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 であることがサーバーに伝えられます。

このクッキーはどこから来たのですか?初めてサーバーから返された情報を確認します: Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/

これは、クライアントのブラウザーに Cookie を書き込むサーバーです。名前は PHPSESSID、値は bmmc3mfc94ncdr15ojitjogma3 です。実際にはいわゆる session_id です。
引き続きサーバーへの 2 番目のリクエストを確認すると、Cookie PHPSESSID が依然としてサーバーに送信されています

次の結論が導き出されます:
1. セッションが使用されている限り、セッションはクライアントに送信されます。 Cookie を介したブラウザ
2、サーバーにリクエストが行われるたびに、ローカル ブラウザはリクエスト情報に Cookie を添付します

この時点で、サーバーとクライアントがどのように 1 対 1 の対応を実現するかについての答えは、セッションは非常に明確です。これを理解してください。真実はセッションを使用する際に非常に役立ちます。よく理解してください。

リダイレクト: http://bbs.chinaunix.net/viewthread.php?tid=600493

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles