2013-05-17 65 views
2

我看到瀏覽器(Chrome)發送請求頭 - 接受編碼:gzip,緊縮,SDCHPHP - getallheaders()可以沒有返回Accept-Encoding頭

然而,當我我不服務器上打印頭在那裏看到Accept-Encoding。

var_dump(getallheaders()); 

這是服務器設置的問題嗎?如果有,它缺少什麼?

+0

編碼僅與Web服務器(不是您的腳本)有關,所以我假設您的Web服務器軟件(即Apache)將它們去除。 –

+0

最有意義的是,apache conf中的設置將它們剝離? – t0x13

回答

0

HTTP標頭應位於$_SERVER陣列中,其中的鍵前綴爲HTTP_

如果Accept-Encoding標頭不在HTTP請求中,那麼您應該確保瀏覽器實際發送了該標頭。

if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { 
    echo "Accept-Encoding is set to: ", $_SERVER['HTTP_ACCEPT_ENCODING']; 
} else { 
    echo "Accept-Encoding is not set."; 
} 
+0

它也不在$ _SERVER中。我確定瀏覽器正在發送這個頭文件,我可以在web開發工具中看到它。 – t0x13