#最初に、短いリンクと長いリンクの違いを紹介します。
##短いリンク #接続->データ転送->接続を閉じる (推奨学習:
PHP プログラミングの入門から習熟まで)たとえば、HTTP はステートレスなショート リンク、ブラウザ、およびサーバーです。 HTTP 操作が実行され、接続が確立されますが、タスクが完了すると接続は終了します。
具体的には、ブラウザ クライアントが TCP 接続を開始して確立します -> クライアントが HttpRequest メッセージを送信します -> サーバーがメッセージを受信します -> サーバー ハンドルが呼び出され、フロント エンドに HttpResponse メッセージを送信しますsocket.close メソッドを送信した直後 - > クライアントが応答メッセージを受信 - > クライアントは最終的にサーバーから TCP 接続を切断する信号を受信します - > クライアントは、具体的には close メソッドを呼び出すことによって TCP 接続を切断します。
また、ショートコネクションとは、SOCKET を接続した後、データの送受信を行った直後にコネクションが切断されることを意味します。
データ受信後に接続が切断されるため、データを受け付けて処理するたびに連絡が行われることはありません。これが、HTTP プロトコルがステートレスである理由の 1 つです。
長い接続接続->データ転送->接続を維持->データ転送->...... ->一方の当事者が接続を閉じるまで、クライアントが接続を閉じる可能性があります。
長い接続とは、SOCKET 接続を確立した後、使用するかどうかに関係なく接続が維持されることを意味しますが、セキュリティは貧弱です。
PHP スクリプトにアクセスするたびに、すべての PHP スクリプトが実行された後にのみ戻り結果が得られます。スクリプトを継続的に実行する必要がある場合は、操作の目的を達成するために PHP の長い接続を使用する必要があります。
一般的な php 環境は apache php linux ですが、apache には php 接続の時間制限があるため、通常、接続時間がこの時間を超えると、Apache サーバーは自動的に切断されます。
この場合、より簡単で便利な方法は、php ページで set_time_limit(0) を設定することです (もちろん、php.ini 設定ファイルでも設定できますが、これはすべての接続が長時間接続され、サービスのパフォーマンスに影響を与える可能性があります)
各 PHP スクリプトには実行時間が制限されているため、PHP スクリプトの実行時間を設定する必要がありますset_time_limit を使用してスクリプトを無制限にし、flush() と ob_flush() を使用してサーバー バッファをクリアし、いつでもスクリプトの戻り値を出力します。
<?php header("Content-Type: text/plain"); set_time_limit(0); while( true ) { // 持续执行的脚本 flush(); ob_flush(); sleep(5); } ?>
実行後、5秒ごとに実行することで、バックグラウンド監視プログラム、スケジュール実行機能、ログ分析、データソートなどの多くの機能を時間操作で完了させることができます。
以上がPHPの長い接続と短い接続の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。