ホームページ  >  記事  >  バックエンド開発  >  PHPにおける長い接続と短い接続の違いは何ですか

PHPにおける長い接続と短い接続の違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-10-11 18:04:231851ブラウズ

php での長い接続と短い接続の違い: 1. 短い接続は、SOCKET 接続後、データの送受信後にすぐに接続が切断されることを意味しますが、長い接続は、SOCKET 接続を確立した後、接続が切断されないことを意味します。使用されているかどうかに関係なく、接続はすぐに切断され、一方が接続を閉じるまで接続は開いたままになります。 2. 短い接続と比較すると、長い接続は安全性が低くなります。

PHPにおける長い接続と短い接続の違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター


#短い接続

接続->データ転送->接続を閉じる

たとえば、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における長い接続と短い接続の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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