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

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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