有時候,你可能有這樣的需求,我們的a程式在處理客戶端的請求時,想要以使用者的身份給我們的b程式傳送乙個請求,但是又不想等待它的請求結果,有什麼樣的方法來解決這樣的情景呢?
這時候,我們必須以socket的方式來建立乙個鏈結,然後把我們的請求資料以get或者post的方式傳遞過去,而無須等待它的響應結果。這個類似於ajax請求,不會阻塞當前a程式的執行。
下面就以post方式的例子來講解一下。
//去掉末尾的;號
$cookie = substr($cookie,0,-1);
//有一點必須明白,如果當前連線沒有建立成功,程式會在這裡阻塞的
$socket = fsockopen ( $_server ['server_name'], 80, $errno, $errstr, 30 );
//我們的b程式的url位址
$request .= "cookie: $cookie\r\n";//回車換行符必須在雙引號裡面
$request .= 'host: ' . $_server ['server_name'] . "\r\n";
$request .= "content-length: " . strlen($tmp) . "\r\n";
$request .= "accept: */*\r\n";
$request .= "connection: keep-alive\r\n\r\n";//注意這裡是2個回車換行符,標誌著請求頭的結束
$request .= "$tmp\r\n\r\n";//post資料後也要有2個回車換行符
fwrite ( $socket, $request );
fclose ( $socket );
//ok,我們已經向b程式成功傳送了乙個請求,b程式會執行給定的任務。但我們不必理會,繼續執行當前a程式
//a程式的任務……
?>
個人主頁:
服務端配置實現AJAX跨域請求
一直以為ajax跨域是無法逾越的鴻溝,最近發現原來在服務端可以通過傳送header資訊來允許ajax跨域請求。php 示例 複製 如下 header access control allow origin header access control allwww.cppcns.comow heade...
SSRF(服務端請求偽造)
ssrf server side request forgery 伺服器端請求偽造 是一種由攻擊者構造形成由服務端發起請求的乙個安全漏洞。一般情況下,ssrf攻擊的目標是從外網無法訪問的內部系統。正是因為它是由服務端發起的,所以它能夠請求到與它相連而與外網隔離的內部系統 作為web安全萌新,以上晦澀...
SSRF 服務端請求偽造
ssrf,server side request forgery,服務端請求偽造,是一種由攻擊者構造形成由伺服器端發起請求的乙個漏洞。一般情況下,ssrf 攻擊的目標是從外網無法訪問的內部系統。漏洞形成的原因大多是因為服務端提供了從其他伺服器應用獲取資料的功能且沒有對目標位址作過濾和限制。也就是當前...