Funziona solo per i file HTML/XML ?
No: è molto spesso utilizzato per i file CSS e JS, per esempio - quelli sono tra la cosa più grande che i siti web sono realizzati (eccetto le immagini), a causa del framework JS e le applicazioni full-JS, rappresenta un enorme guadagno!
In realtà, qualsiasi formato basato su testo può essere compresso piuttosto bene (al contrario, le immagini non possono, ad esempio, poiché sono generalmente già compresse); a volte, i dati JSON restituiti da Ajax-richieste sono compressi troppo - è dati di testo, dopotutto ;-)
consente di dire il mio file/Perl PHP genera alcuni semplici dati delimitati da virgole, e invia che al browser , sarà codificato di default?
È una questione di configurazione: se è stato configurato il server per comprimere questo tipo di contenuti, sarà probabilmente essere compresso :-)
(Se il browser dice che accetta dati gzip-encoded)
Ecco un esempio di configurazione per Apache 2 (utilizzando mod_deflate) che uso sul mio blog:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/xml
</IfModule>
Qui, voglio HTML/XML/CSS/JS essere compresso.
E qui è la stessa cosa, più/meno un paio di opzioni di configurazione che ho usato una volta, sotto Apache 1 (mod_gzip):
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_minimum_file_size 256
mod_gzip_maximum_file_size 500000
mod_gzip_dechunk Yes
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.txt$
mod_gzip_item_include file \.js$
mod_gzip_item_include mime text/html
mod_gzip_item_exclude mime ^image/
</IfModule>
cose che possono essere notati qui sono che io non voglio troppo piccolo (il guadagno non sarebbe abbastanza importante) o troppo grande (mangerebbe troppo CPU per comprimere) i file da comprimere; e voglio che i file css/html/txt/js siano compressi, ma non le immagini.
Se si desidera che i dati separati da virgole essere compresso allo stesso modo, si dovrà aggiungere o si tratta di tipo di contenuto o è un'estensione per la configurazione del server web, per attivare gzip compressione per esso.
C'è un modo per testare questo?
per qualsiasi contenuto restituito direttamente al browser, le estensioni di Firefox Firebug o LiveHTTPHeaders sono un must-have.
Per il contenuto che non passa attraverso il modo standard di comunicazione del browser, potrebbe essere più difficile; alla fine, potrebbe essere necessario utilizzare qualcosa come Wireshark per "annusare" ciò che sta veramente attraversando i tubi ... Buona fortuna!
Che dire di piattaforme come Silverlight o Flash, quando scaricano tali dati saranno oggetto compresso/decompresso dal browser/runtime automaticamente?
Per rispondere alla domanda su Silverlight e Flash, se inviano un'intestazione Accept che indica che supportano il contenuto compresso, Apache utilizzerà mod_deflate o mod_gzip. Se non supportano la compressione, non invieranno l'intestazione. "Funzionerà". - Nate
solo per chiarire per i lettori futuri: Qualsiasi tipo di HTTP i dati possono essere compressi, punto. È solo una cattiva idea per i dati che sono già compressi, come le immagini. –
@Sean> esattamente; Mi chiedo se si possa ottenere qualcosa ricomprimendo le immagini, btw ... Mai osato provarlo ^^ (immagino che il guadagno sarebbe davvero minimalista, se non nullo, e mangerebbe un po 'di CPU per quasi nulla ...) –
Bene, ho visto immagini BMP non compresse servite ... –