短连接连接->传输数据->关闭连接比如HTTP是无状态的短连接。浏览器和服务器每执行一次HTTP操作,就建立一个连接,但是任务结束就断开连接。具体是调用close方法:浏览器客户端发起并建立TCP连接->客户端发送HttpRequest消息->服务端收到消息->服务端处理并发送HttpResponse消息给前端,并立即发送后调用socket.close方法->客户端收到响应报文->客户端最终会收到服务器端断开TCP连接的信号->客户端断开TCP连接。也可以说是短连接,就是SOCKET连接后,发送和接收数据后立即断开连接。因为接收到连接后,数据就断开了,所以每次接收和处理数据的时候都会没有连接。这就是HTTP协议无状态的原因之一。长连接connection->transferdata->keepconnection->transmitdata->.......->untilonepartyclosestheconnection,client可能会关闭连接。长连接是指SOCKET连接建立后,无论是否使用都保持连接,但安全性较差。我们每次访问一个PHP脚本,都是在所有的PHP脚本都执行完之后,才能得到返回的结果。如果我们需要一个脚本一直运行,那么就需要使用php长连接来达到运行的目的。一般的php环境是apache+php+linux,但是由于apache对php连接有时间限制,一般连接时间超过这个时间apache服务器会自动断开连接。这种情况下,更简单方便的方法是在php页面中设置set_time_limit(0)(当然也可以在php.time连接中设置,影响服务性能)每个PHP脚本限制执行时间,所以我们需要通过set_time_limit将一个脚本的执行时间设置为无限长,然后使用flush()和ob_flush()来清除服务器缓冲区并随时输出脚本的返回值。当我们执行完后,我们会每5秒执行一次。通过这种方式,我们可以完成很多功能,比如后台监控程序、定时执行功能、日志分析、数据整理等耗时操作。
