2012-01-11 19 views
5

Di solito, quando si invia un colpo di testa di stato HTTP da PHP, si potrebbe inviare l'header HTTP in questo modo:Ancora necessario utilizzare 'Stato: 404 non trovato' per FCGI?

header("HTTP/1.0 404 Not Found"); 

Tuttavia, il PHP manual afferma che per gli host fcgi, uno avrebbe bisogno di inviare un colpo di testa "Stato" che viene poi convertito in un'intestazione HTTP dal modulo fcgi:

header("Status: 404 Not Found"); 

sto facendo funzionare Apache 2.2 con PHP utilizzando mod_fcgi su una macchina Windows 7 e l'invio dell'intestazione utilizzando solo header("HTTP/1.0 404 Not Found"); sembra funzionare bene.

È qualcosa che è cambiato di recente? Devo ancora inviare un'intestazione Status per gli host FCGI? Qualcuno potrebbe confermarlo anche per altre piattaforme (solaris, linux) e altri server web (nginx, lighttp)?

risposta

3

Non credo che sia necessario utilizzare l'intestazione di stile 'Stato' a meno che non si abbia l'opzione cgi.rfc2616_headers abilitata. .

La descrizione di tale facoltà è http://php.net/manual/en/ini.core.php

"Dice PHP quale tipo di intestazioni da utilizzare per l'invio di risposta HTTP codice Se è impostato 0, PHP invia uno Stato: colpo di testa che è supportato da Apache e altri server Web. Quando questa opzione è impostata su 1, PHP invia invia »intestazioni conformi a RFC 2616. Lascialo impostato su 0 a meno che tu non sappia cosa stai facendo .

In pratica si inviano intestazioni di stile HTTP a PHP e poi PHP le converte in intestazioni di stile "Stato" dove necessario. Sembra che ci siano stati vari bug nel corso degli anni in cui entrambi sono stati convertiti in modo errato o più intestazioni di "Status" sono state inviate in una volta - tuttavia tutti questi bug sembrano essere corretti ora. Quindi penso che tu sia sicuro semplicemente impostando le intestazioni di stile HTTP e consentendo a PHP di convertirle.

Inoltre ho appena testato e inviato l'intestazione ("HTTP/1.0 404 non trovato"); funziona bene sul mio ambiente di sviluppo utilizzando FastCGI

Problemi correlati