Autore Topic: firefox 8 b5 (plain text su ErrorDocument 400 di Apache) vs firefox 7  (Letto 5248 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline marco80

  • Post: 10
Re: firefox 8 b5 (plain text su ErrorDocument 400 di Apache) vs firefox 7
« Risposta #15 il: 08 Novembre 2011 21:06:06 »
Forse ormai non serve più, ma per dovere segnalo che:
Con versioni precedenti ora non posso provare, ma sono certo che si comporterebbero correttamente visto il risultato egli altri due browser.
con la versione di Firefox 6.2 ad esempio se faccio clic sui tre link su indicati il risultato è sempre:
Citazione
Tempo per la connessione esaurito
     
     Il server [79.9.94.34] sta impiegando troppo tempo a rispondere.
       
    Il sito potrebbe non essere disponibile o sovraccarico. Riprovare fra qualche momento.
  Se non è possibile caricare alcuna pagina, controllare la connessione di rete del computer.
  Se il computer o la rete sono protetti da un firewall o un proxy, assicurarsi che Firefox abbia i permessi per accedere al web.

Grazie Miki per il test ma ho stoppato il server su quegli url per questo ti compare quel messaggio.

Offline marco80

  • Post: 10
Re: firefox 8 b5 (plain text su ErrorDocument 400 di Apache) vs firefox 7
« Risposta #16 il: 09 Novembre 2011 09:20:15 »
È 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:porta

però 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=51246
https://issues.apache.org/bugzilla/show_bug.cgi?id=48357

qualcuno 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ù!
« Ultima modifica: 09 Novembre 2011 11:18:06 da marco80 »

Offline MaK

  • Post: 371
    • Blog
Re: firefox 8 b5 (plain text su ErrorDocument 400 di Apache) vs firefox 7
« Risposta #17 il: 09 Novembre 2011 12:00:52 »
Consiglio di tentare in qualche mailing list dedicata ad Apache, é chiaro che il problema é lato server se ad una richiesta HTTP/1.1 viene risposto con HTTP/0.9, e per di piú con un codice 200, assicurati che non ci siano proxy di mezzo intanto, che potrebbero riscrivere la risposta, é un server a cui hai accesso diretto o si trova presso un provider?
Prova con un file locale che inizi con HTTP/1.1 400 Bad Request\nConnection: close\nContent-type: text/html\n\n

Cmq da qui la discussione é probabilmente OT.

Offline marco80

  • Post: 10
Re: firefox 8 b5 (plain text su ErrorDocument 400 di Apache) vs firefox 7
« Risposta #18 il: 09 Novembre 2011 12:59:13 »
Consiglio di tentare in qualche mailing list dedicata ad Apache, é chiaro che il problema é lato server se ad una richiesta HTTP/1.1 viene risposto con HTTP/0.9, e per di piú con un codice 200, assicurati che non ci siano proxy di mezzo intanto, che potrebbero riscrivere la risposta, é un server a cui hai accesso diretto o si trova presso un provider?
sicuramente non ci sono proxy di mezzo e ho accesso diretto al server, sembrerebbe essere un problema di Apache che su ErrorDocument 400 non risponde HTTP/1.1, quindi eventualmente dovrei modificare i sorgenti di apache per fare in modo di ricevere una risposta >= HTTP/1.0 in caso di ErrorDocument 400

Prova con un file locale che inizi con HTTP/1.1 400 Bad Request\nConnection: close\nContent-type: text/html\n\n

Usando un file locale con quel contenuto continuo a non ricevere HTTP/1.1 ma continuo a vedere nel browser la richiesta precedente
127.0.0.1 - - [09/Nov/2011:12:52:34 +0100] "GET /" 400 166


AGGIORNAMENTO: giusto per la cronaca per il momento ho risolto in maniera suboptimal facendo redirigere l'errore 400 su questa pagina:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Redirecting to HTTPS...</title>
<meta http-equiv="REFRESH" content="0;url=https://servername:porta/index.html"></HEAD>
<BODY>
Redirecting to HTTPS...
</BODY>
</HTML>
« Ultima modifica: 09 Novembre 2011 13:24:04 da marco80 »

0 Utenti e 1 Visitatore stanno visualizzando questo topic.