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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top