鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ php-fpm下無法主動斷開瀏覽器鏈接,該怎么處理?

php-fpm下無法主動斷開瀏覽器鏈接,該怎么處理?

例如這個腳本,在正常php中可以斷開瀏覽器鏈接,結(jié)果肯定是123;但php-fpm下,是無法主動斷開的,456也被輸出了.那么應(yīng)該如何處理呢?

<?php
var_dump('123');
$_1=ob_get_length(); 
header("Content-Length: $_1");
header("Connection: Close");
ob_flush();
flush();
set_time_limit(0);
var_dump('456');
exit;
回答
編輯回答
神曲

Connection: Close表示當(dāng)前連接的請求處理完畢后斷掉。不是直接斷開


head有2種
1.request的head是給服務(wù)端看的,php通過get_header()獲取
2.response的head是給客戶端看的,php通過header()設(shè)置

所以header('Connection: Close');關(guān)php-fpm什么事

Connection可能不常用
常用的是header('Location:http://xxxxx.com/');
服務(wù)端是沒有跳轉(zhuǎn)這種行為的,只能通過head告知客戶端我要跳轉(zhuǎn)。

要注意的是header不代表結(jié)束執(zhí)行,所以用header進(jìn)行跳轉(zhuǎn)時要使用exit。
代碼如下:

header('Location:http://xxxxx.com/');exit;
2017年10月4日 02:10