Sgonfiare compatibilità del browser compressione e vantaggi rispetto GZIP
-
21-09-2019 - |
Domanda
AGGIORNAMENTO 10 FEBBRAIO 2012:
zOompf ha completato alcune ricerche molto approfondite su questo argomento qui . E 'trionfi qualsiasi risultato qui sotto.
AGGIORNAMENTO 11 SETTEMBRE 2010:
Una piattaforma di test è stato creato per questo qui
HTTP 1.1 definizioni di GZIP e sgonfiare (zlib) per alcune informazioni di base:
" 'Gzip' è il formato gzip, e 'sgonfiare' è il formato zlib . Essi dovrebbe probabilmente hanno chiamato il secondo 'zlib' invece da evitare confusione con il formato dei dati grezzi sgonfiamento compresso. Mentre il HTTP 1.1 RFC 2616 sottolinea giustamente alla specifica RFC 1950 zlib in per il trasferimento di codifica 'sgonfiare', non ci sono state segnalazioni di server e browser che producono in modo errato o si aspettano sgonfiare grezzo i dati per la specifica sgonfiare in RFC 1951, in particolare prodotti Microsoft . Così, anche se il trasferimento di codifica 'sgonfiare' utilizzando il formato zlib sarebbe l'approccio più efficiente ( e di fatto esattamente che cosa il formato zlib è stato progettato per ), utilizzando il 'gzip' di trasferimento codifica è probabilmente più affidabile a causa di una sfortunata scelta di nome da parte del HTTP 1.1 autori "(fonte:. http://www.gzip.org /zlib/zlib_faq.html )
Quindi, la mia domanda: se io mando RAW sgonfiare dati senza involucro zlib (o gzip, è per questo) ci sono i browser moderni (ad esempio, IE6 e su, FF, Chrome, Safari, ecc) che non può capire lo sgonfiare grezzo dati compressi (supponendo richiesta HTTP "Accept-Encoding" contiene "sgonfia")?
sgonfiare dati saranno sempre pochi byte più piccolo di GZIP.
Se tutti questi browser in grado di decodificare correttamente i dati, cosa aspetti negativi ci sono per l'invio di sgonfiare RAW invece di zlib?
AGGIORNAMENTO 11 SETTEMBRE 2010:
Una piattaforma di test è stato creato per questo qui
Soluzione
UPDATE: I browser sono in calo il supporto per sgonfiare crudo. zOompf ha completato alcune ricerche molto approfondite su questo argomento qui . Purtroppo, sembra che deflate crudo non è sicuro da usare.
Controlla http://www.vervestudios.co/projects/compression -test / risultati per più risultati.
Qui ci sono i browser che sono stati testati:
/* Browser DEFLATE ZLIB */
XP Internet Explorer 6 PASS FAIL
XP Internet Explorer 7 PASS FAIL
XP Internet Explorer 8 PASS FAIL
Vista Internet Explorer 8 PASS FAIL
XP Firefox 3.6.* PASS PASS
XP Firefox 3.5.3 PASS PASS
XP Firefox 3.0.14 PASS PASS
Win 7 Firefox 3.6.* PASS PASS
Vista Firefox 3.6.* PASS PASS
Vista Firefox 3.5.3 PASS PASS
XP Safari 3 PASS PASS
XP Safari 4 PASS PASS
XP Chrome 3.0.195.27 PASS PASS
XP Opera 9 PASS PASS
XP Opera 10 PASS PASS
XP Sea Monkey 1.1.8 PASS PASS
Android 1.6 Browser (v4)* N/A N/A
OS-X Safari 4 PASS PASS
OS X Chrome 7.0.517.44 PASS PASS
OS X Opera 10.63 PASS PASS
iPhone 3.1 Safari PASS PASS
* Android mandate HTTP intestazione della richiesta "Accept-Encoding: gzip". Sgonfiare non è consentito.
Concludo che siamo in grado di sempre inviare raw DEFLATE (quando la richiesta HTTP "Accept-Encoding" contiene "sgonfia") e il browser sarà in grado di interpretare correttamente il codificato dati. Qualcuno può dimostrare questo torto?
Nota: implementazione nativa di .NET di DEFLATE (System.IO.Compression.DeflateStream) è DEFLATE crudo. Fa schifo anche. Si prega di utilizzare zlib.net per tutte le vostre esigenze NET sgonfiando.
Altri suggerimenti
Il browser di Android 1.6 (v4) non sia lo zlib e il test sgonfiare sulla tua pagina. Ho aggiunto alla vostra lista.
Non è forse il caso che AddOutputFilterByType DEFLATE
utilizzando mod_deflate manda da gzip per impostazione predefinita?
per quanto ne so, sì - più o meno si "è sempre possibile inviare DEFLATE crudo e tutto sarebbe andato bene" ... non c'è "sempre", ma la maggior parte di tutti i casi. in caso contrario, questo è il problema del browser.