2015-08-23 10 views
14

Ho abilitato la compressione gzip in IIS 8.0 seguendo l'url Enabling Gzip in IIS on Windows 8 Sto chiamando i servizi di resto esterni dalla mia applicazione tramite jquery chiamata ajax e codice C#, attualmente il mio servizio web esterno non è compresso gzip. Se chiedo al mio partner di servizio di gzip la loro risposta, devo scrivere qualsiasi logica di decompressione nel mio codice sul lato jquery e il lato C# o il browser automaticamente decomprimono la risposta per me?GZIP viene decompresso automaticamente dal browser?

risposta

14

Tutti i browser moderni sono in grado di gestire una risposta codificata gzip. Infatti, se osservi le loro richieste, avranno un'intestazione che dice qualcosa sulla falsariga di Accept-Encoding: gzip che è il loro modo di dire al server che possono gestire le risposte gzippate.

La parte importante è che il server può restituire sia gzip che le risposte non compresse a seconda dell'esistenza e del valore di tale intestazione. Se un client non invia l'intestazione Accept-Encoding, non dovresti comprimerla. Se il client lo invia, puoi opzionalmente codificare la risposta usando gzip. Non tutti i contenuti devono essere compressi perché potrebbero già essere compressi e stai sprecando cicli di CPU. Le immagini JPEG sono di solito un buon esempio di questo. Molto probabilmente IIS sta prendendo una decisione intelligente anche qui e comprime solo ciò che è necessario, quando necessario.

È possibile verificare che IIS stia facendo quello che dovrebbe essere guardando le intestazioni di risposta che tornano dal server e cercando l'intestazione Content-Encoding: gzip. Questo dice al client, o al browser, che il contenuto è codificato usando la compressione gzip e dovrebbe decomprimerlo in modo appropriato.

Tutte le richieste basate su browser (ad es. AJAX/jQuery, richieste regolari) verranno automaticamente decompresse senza ulteriori sforzi da parte dell'utente. Il browser è il cliente responsabile per determinare se può gestire gzip e aggiungerà l'intestazione Accept-Encoding se lo fa. Il codice JavaScript riceverà la versione non compressa di esso nel gestore della risposta.

TL; DR: Accenderlo è solitamente una buona idea e non è necessario eseguire ulteriori operazioni.

+0

Grazie mille per la risposta. Meravigliosa risposta Questo mi aiuta molto :) – user5075511

1

Se la compressione gzip è abilitata sul server Web, ovvero, non nella logica dell'applicazione, il browser verrà decompresso automaticamente.

Infatti, se il browser non supporta la compressione, il server Web invierà i dati non compressi (queste informazioni sono contenute nelle intestazioni http di richiesta/risposta scambiate tra browser e server web). Basta essere consapevoli del fatto che la compressione è inefficace con JPEG e altri formati già compressi.

Problemi correlati