Home >Backend Development >PHP Problem >The difference between php long connection and short connection

The difference between php long connection and short connection

(*-*)浩
(*-*)浩Original
2019-09-12 09:40:163804browse

First introduce the difference between short links and long links:

The difference between php long connection and short connection

##Short link

Connect->Transfer data->Close connection (recommended learning:

PHP programming from entry to proficiency)

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 means that after establishing a SOCKET connection, the connection will be maintained regardless of whether it is used or not, 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.

The above is the detailed content of The difference between php long connection and short connection. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn