Home > Article > Backend Development > What is the difference between long connection and short connection in php
The difference between long connection and short connection in php: 1. Short connection means that after SOCKET connection, the connection will be disconnected immediately after sending and receiving data; while long connection means that after establishing SOCKET connection, no matter whether it is used or not, the connection will be disconnected immediately. The connection remains open until one party closes the connection. 2. Compared with short connections, long connections are less secure.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
Short Connection
Connect->Transfer data->Close connection
For example, HTTP is a stateless short link, browser and server Every time an HTTP operation is performed, a connection is established, but the connection is terminated when the task is completed.
Specifically, the browser client initiates and establishes a TCP connection -> client sends an HttpRequest message -> server receives the message ->server handle and sends an HttpResponse message to the front end, which is called immediately after sending socket.close method->client receives the response message->client will eventually receive a signal from the server to disconnect the TCP connection->client disconnects the TCP connection, specifically by calling the close method.
It can also be said like this: short connection means that after SOCKET is connected, the connection is disconnected immediately after sending and receiving data.
Because the connection is disconnected after receiving the data, there will be no contact each time the data is accepted and processed. This is one of the reasons why the HTTP protocol is stateless.
Long connection
Connect->Transfer data->Keep connection->Transfer data-> .. .........->Until one party closes the connection, possibly the client closes the connection.
Long connection refers to maintaining the connection regardless of whether it is used or not after establishing a SOCKET connection, but the security is poor.
Every time we access a PHP script, we only get the return result after all PHP scripts have been executed. If we need a script to run continuously, then we must use PHP long connection to achieve the purpose of operation.
The general php environment is apache php linux, but since apache has a time limit on php connections, generally the apache server will automatically disconnect if the connection time exceeds this time.
In this case, the simpler and more convenient way is to set set_time_limit(0) in the php page (of course it can also be set in the php.ini configuration file, but this will have an impact on the entire environment. After all, we don’t want to All connections can be connected for a long time, affecting service performance)
Each PHP script limits the execution time, so we need to set the execution time of a script to unlimited through set_time_limit, and then use flush() and ob_flush() to clear the server buffer and output the script's return value at any time.
<?php header("Content-Type: text/plain"); set_time_limit(0); while (true) {// 持续执行的脚本 flush(); ob_flush(); sleep(5); } ?>
After we execute, we will execute it every 5 seconds. Through this method, we can complete many functions, such as background monitoring program, scheduled execution function, log analysis, data sorting, etc. time operation.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is the difference between long connection and short connection in php. For more information, please follow other related articles on the PHP Chinese website!