2010-11-05 15 views
5

Abbiamo un semplice modulo di login HTML sul server web del nostro dispositivo integrato. Il server Web è codificato in modo personalizzato a causa di gravi limitazioni della memoria. Indipendentemente da queste limitazioni, ci piace Chrome e vorremmo supportarlo.come aggirare l'intestazione "Content-encoding gzip deflate" inviata da Chrome?

Tutti i browser inviano una richiesta HTTP al nostro modulo di accesso contenente la stringa "username = myname & password = mypass" prevista, ma non Chrome. Invece, riceviamo da Chrome una richiesta "Content-encoding gzip deflate". A proposito, per "tutti i browser", voglio dire che questo è stato testato per funzionare bene su Internet Explorer versioni 9 beta, 8, 7, 6; Firefox versioni 4 beta, 3, 2; Opera 10, 9; Safari 5, 4, 3; e SeaMonkey 2.

riferimento alla sezione "14.2 Accetta charset" del w3.org del http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html abbiamo cercato di inviare indietro un HTTP 406 codice per indicare che il server non supporta la codifica che, nella speranza che Chrome avrebbe cercato di nuovo e post le stringhe attese nel modo standard. Il codice 406 restituito dal server Web è chiaramente visualizzato nella finestra "Inspect Element" di Chrome, ma sembra essere trattato da Chrome come un codice di errore e non vengono inviate ulteriori richieste al server web. "Accesso fallito." Abbiamo anche provato i codici di ritorno HTTP 405 e 200, stesso risultato.

C'è un modo per aggirare questo comportamento con JavaScript sul lato client che impedirà a Chrome di inviare la richiesta "Content-encoding gzip deflate" o con una risposta lato server che spiegherà bene a Chrome non fare gzip, basta inviarcelo in modo normale?

Abbiamo provato a postare sul forum di risoluzione dei problemi di Google Chrome senza alcuna risposta.

Qualsiasi aiuto sarebbe molto apprezzato!

Con i migliori saluti, Bert

risposta

0

Suona come quando si utilizza Chrome per fare un post a un server per la prima volta, il default cromati di utilizzare una codifica gzip. Piuttosto strano

L'uscita facile è semplicemente inserire il nome utente/passare come parametri GET e, quando si invia la risposta, finché non si invia la codifica del contenuto gzip, Chrome dovrebbe iniziare a utilizzare i post non compressi con gzip da quel punto in poi. Spero che funzioni?

0

L'ho provato un po 'con un semplice script Python stampato su stdout. Pensavo di avere lo stesso problema, ma poi ho capito che mi stavo solo dimenticando di svuotare lo stdout. Sembra che Chrome invii sempre la richiesta fino alla fine delle intestazioni prima di inviare il contenuto della richiesta e devi utilizzare una seconda chiamata recv per ottenere i dati POST. Al contrario, l'intera richiesta di Firefox viene restituita in una singola chiamata recv.

2

Si sta cercando nella sezione sbagliata per il codice di errore: Sezione 14.11 di RFC 2616 specifica che si invia un 415 (tipo di supporto non supportato) se non si può affrontare la codifica del contenuto.

Problemi correlati