溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中長連接和短連接的區(qū)別有哪些

發(fā)布時間:2021-10-12 09:33:18 來源:億速云 閱讀:115 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“php中長連接和短連接的區(qū)別有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php中長連接和短連接的區(qū)別有哪些”吧!

php中長連接和短連接的區(qū)別:1、短連接是指SOCKET連接后,發(fā)送接收完數(shù)據(jù)后馬上斷開連接;而長連接是指建立SOCKET連接后,不管是否使用都保持連接,直到一方關閉連接為止。2、與短連接相比,長連接的安全性較差。

php中長連接和短連接的區(qū)別有哪些

本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

短連接

連接->傳輸數(shù)據(jù)->關閉連接

比如HTTP是無狀態(tài)的的短鏈接,瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結(jié)束就中斷連接。

具體就是 瀏覽器client發(fā)起并建立TCP連接 -> client發(fā)送HttpRequest報文 -> server接收到報文->server handle并發(fā)送HttpResponse報文給前端,發(fā)送完畢之后立即調(diào)用socket.close方法->client接收response報文->client最終會收到server端斷開TCP連接的信號->client 端斷開TCP連接,具體就是調(diào)用close方法。

也可以這樣說:短連接是指SOCKET連接后,發(fā)送接收完數(shù)據(jù)后馬上斷開連接。

因為連接后接收了數(shù)據(jù)就斷開了,所以每次數(shù)據(jù)接受處理不會有聯(lián)系。 這也是HTTP協(xié)議無狀態(tài)的原因之一。

長連接

連接->傳輸數(shù)據(jù)->保持連接 -> 傳輸數(shù)據(jù)-> ...........->直到一方關閉連接,多是客戶端關閉連接。

長連接指建立SOCKET連接后不管是否使用都保持連接,但安全性較差。

每次我們訪問PHP腳本的時候,都是當所有的PHP腳本執(zhí)行完成后,我們才得到返回結(jié)果。如果我們需要一個腳本持續(xù)的運行,那么我們就要通過php長連接的方式,來達到運行目的。

一般php環(huán)境為apache+php+linux,但是由于apache對php連接都有時間限制,一般超過這個連接時間apache服務器會自動斷掉連接。

這種情況下比較簡單方便的方式就是在php頁面中設置set_time_limit(0)(當然也可以在php.ini配置文件中設置,但是這樣對整個環(huán)境產(chǎn)生影響,畢竟我們并不想對所有連接都可以長時間連接,影響服務性能)

每個PHP腳本都限制了執(zhí)行時間,所以我們需要通過 set_time_limit 來設置一個腳本的執(zhí)行時間為無限長,然后使用 flush() 和 ob_flush() 來清除服務器緩沖區(qū),隨時輸出腳本的返回值。

<?php
header("Content-Type: text/plain");
set_time_limit(0);
while (true) {// 持續(xù)執(zhí)行的腳本  flush();
	ob_flush();
	sleep(5);
}
?>

當我們執(zhí)行后,每隔5秒鐘,我們會執(zhí)行一次,通過這一方法,我們可以完成很多功能,例如后臺監(jiān)控程序,定時執(zhí)行功能,日志分析,數(shù)據(jù)整理等耗時的操作。

到此,相信大家對“php中長連接和短連接的區(qū)別有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI