È un fix di sicurezza in Firefox 8, il tuo server cerca di servire un documento con http 0.9 su una porta non predefinita. dovresti configurarlo per rispondere con http1.0 o 1.1.
Ho provato a forzare la risposta usando BrowserMatch ^Mozilla/5 force-response-1.0 nel file di configurazione di Apache, ma non ha sortito effetto.
Il mio problema è che quando ottengo una risposta 400 dal webserver nonostante specifichi nel file di configurazione di Apache:
ErrorDocument 400 "Content-type: text/html\n\n<html><head><title>CGI Test</title></head><body><h1>HELLO WORLD</h1></body></html>"
mi continua a scrivere a video il codice sorgente.
Ho provato ad aggiungere la risposta HTTP/1.1 prma del content-type:
ErrorDocument 400 "HTTP/1.1 200 OK\nContent-type: text/html\n\n<html><head><title>CGI Test</title></head><body><h1>HELLO WORLD</h1></body></html>"
ma mostra l'ultima pagina che ha caricato senza apportare modifiche, quindi presumo che sia errato aggiungere HTTP/1.1 200 OK prima del content-type.
nei log di Apache non vedo nessuna risposta HTTP/1.1 in caso di errore 400, mentre in caso di Errore 404 ottengo "automaticamente" un HTTP/1.1:
::1 - - [08/Nov/2011:17:54:05 +0100] "GET /" 400 140
::1 - - [09/Nov/2011:09:00:04 +0100] "GET /test HTTP/1.1" 404 212
ho provato ad usare anche una CGI perl ma il discorso non cambia:
ErrorDocument 400 /redirect.cgi
Questa è la CGI:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head>";
print "<body><h1>Hello WORLD</h1>";
print "</body></html>";
Non ho la possibilità di usare la porta standard 80 e il webserver può usare solo il protocollo https per comunicare.
Quindi se un utente digita correttamente l'url specificando https il webserver funziona correttamente, se invece prova a digitare
http://nomeserver:porta attraverso l'errore 400 faccio un redirect verso l'url
https://nomeserver:portaperò purtroppo non riesco a forzare la risposta del webserver con l'header >= HTTP/1.0
Inoltre ho trovato questi link che riportano un bug su apache (speaking plain HTTP" 400 Error not returning http headers)
https://issues.apache.org/bugzilla/show_bug.cgi?id=51246https://issues.apache.org/bugzilla/show_bug.cgi?id=48357qualcuno ha qualche suggerimento? Grazie
PS: l'url temporaneo per un test è
http://79.22.49.51:4080 con firefox 7 funzionava, con la versione 8 in seguito alla fix non funziona più!