¿Esto solo funciona para archivos HTML/XML ?
No: es muy a menudo se utiliza para archivos CSS y JS, por ejemplo - como los que se encuentran entre lo más grande que los sitios web están hechas de (excepto las imágenes), a causa de los marcos JS y aplicaciones completas-JS, ¡representa una gran ganancia!
En realidad, cualquier formato basado en texto se puede comprimir bastante bien (por el contrario, las imágenes no pueden, por ejemplo, ya que generalmente ya están comprimidas); A veces, los datos JSON regresaron de Ajax-solicitudes se comprimen también - es datos de texto, después de todo ;-)
permite decir mi archivo en PHP/Perl genera datos de algunos simples delimitados por comas, y envía al navegador que , ¿estará codificado por defecto ?
Es una cuestión de configuración: si ha configurado el servidor para comprimir ese tipo de contenido, es probable que va a ser comprimido :-)
(Si el navegador dice que acepta datos codificado con Gzip)
he aquí una muestra de la configuración de Apache 2 (usando mod_deflate) que yo uso en mi 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>
Aquí, quiero hTML/XML/CSS/JS te ser comprimido.
Y aquí es lo mismo, más/menos un par de opciones de configuración que utiliza una vez, bajo 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>
cosas que se pueden notar aquí que no quiero demasiado pequeño (la ganancia no sería muy importante) o demasiado grande (podría consumir demasiada CPU para comprimir) los archivos que se van a comprimir; y quiero que se compriman los archivos css/html/txt/js, pero no las imágenes.
Si desea que los datos separados por comas para ser comprimido de la misma manera, tendrá que añadir ya sea que es de tipo de contenido o su extensión a la configuración de su servidor web, para activar gzip-compresión para él.
¿Hay alguna manera de probar esto?
Para cualquier contenido devuelto directamente en el navegador, las extensiones de Firefox Firebug o LiveHTTPHeaders son un must-have.
Para contenido que no pasa por la forma de comunicación estándar del navegador, puede ser más difícil; al final, es posible que tengas que usar algo como Wireshark para "olfatear" lo que realmente está pasando por las tuberías ... ¡Buena suerte con eso!
¿Qué hay de plataformas como Silverlight o Flash, cuando descargan dichos datos que se comprime/descomprime por el navegador/tiempo de ejecución de forma automática?
Para responder a su pregunta sobre Silverlight y Flash, si envían un encabezado Aceptar que indique que admiten el contenido comprimido, Apache usará mod_deflate o mod_gzip. Si no son compatibles con la compresión, no enviarán el encabezado. Simplemente "funcionará". - Nate
sólo para aclarar los futuros lectores: Cualquier tipo de HTTP los datos pueden ser comprimidos, punto Es solo una mala idea para los datos que ya están comprimidos, como las imágenes. –
@Sean> exactamente; Me pregunto si uno podría obtener algo al volver a comprimir las imágenes, por cierto ... Nunca se atrevió a probarlo ^^ (Supongo que la ganancia sería realmente minimalista, si no nula, y consumiría bastante CPU por casi nada ...) –
Bueno, he visto imágenes BPM sin comprimir servidas ... –