¿Cómo puedo saber si mi servidor está sirviendo contenido comprimido?


160

Tengo una aplicación web en un servidor NGinx. Configuré gzip onel archivo conf y ahora estoy tratando de ver si funciona. YSlow dice que no, pero 5 de los 6 sitios web que hacen la prueba dicen que sí. ¿Cómo puedo obtener una respuesta definitiva sobre esto y por qué hay una diferencia en los resultados?

Respuestas:


229

Se ve como una respuesta posible es, como era de esperar, curl:

$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null
2553

En el segundo caso, el cliente le dice al servidor que admite la codificación de contenido y puede ver que la respuesta fue más corta, comprimida.


3
Esto es cierto, pero gzip se puede configurar para comprimir ciertos tipos de archivos y excluir otros. Por lo tanto, asegúrese de que los archivos que riza con esta prueba sean del tipo que se comprimirá.
Tyler Biscoe

55
Sugeriría usar el -Lindicador curltambién para seguir todos los redireccionamientos, por ejemplo, desde no www hasta el www.resultado de size_download puede estar mal
vladkras

Si pudiera impresionar una cosa en mis desarrolladores más jóvenes, es la importancia de tener una base sólida de Unix. +1 para CURL. Es confuso al principio, un salvavidas cuando lo sabes.
Akron

105

Actualizar

Chrome cambió la forma en que informa (vea la respuesta original si está interesado). Puedes saberlo usando las Herramientas para desarrolladores (F12). Vaya a la pestaña Red, seleccione el archivo que desea examinar y luego mire la pestaña Encabezados a la derecha. Si está comprimido, lo verá en Content-Encoding.

En este ejemplo, slider.jpg de hecho está siendo comprimido.

ingrese la descripción de la imagen aquí

Compare eso con esta misma página en la que se encuentra y mire un archivo png, no verá tal designación.

ingrese la descripción de la imagen aquí

Para ser claros, no es porque uno sea un jpg y otro sea un png. Es porque uno está comprimido y el otro no.


Respuesta anterior

En Chrome, si abre las Herramientas para desarrolladores y va a la pestaña Red, mostrará lo siguiente si no hay compresión:

ingrese la descripción de la imagen aquí

Y lo siguiente si hay compresión:

ingrese la descripción de la imagen aquí

En otras palabras, el mismo número, arriba y abajo, significa que no hay compresión.


3
Puede ser mejor inspeccionar los encabezados de respuesta. Este método no dice si se comienza a usar la compresión gzip o algún otro algoritmo de compresión.
Samuel

44
En Chrome Developer Tools en la pestaña Red, haga clic en el nombre / enlace del recurso para la solicitud y puede inspeccionar los Encabezados de respuesta de esta manera y ver gzipla clave de codificación de contenido [captura de pantalla] [1] [1]: i.stack .imgur.com / Bpb5W.png (http://content.screencast.com/users/…
d48

1
Las versiones recientes de Chrome (Versión 44.0.2403.130 m) no parecen mostrar los detalles de tamaño / contenido, es decir, los detalles de gzip, i.imgur.com/MTz7DCM.png . ¿Alguien sabe por qué?
Andy Dufresne

33

Ver en los encabezados de respuesta. En Firefox puedes consultar con Firebug.

Content-Encoding    gzip

Si el servidor admite contenido gzip, esto debería mostrarse.


9
Solo obtendrá esto si su cliente ha enviado "Accept-Encoding: gzip, deflate"
Maciej Swic

2
Actualización dura para ver la codificación del archivo original, ya que cuando el archivo se sirve con el estado 304, ¡parece que la versión en caché ya está descomprimida! (en mi caso, veo un encabezado ETag en lugar de Content-Encoding)
ptim

11

En la nueva versión de Chrome, Herramientas del desarrollador> red, puede hacer clic con el botón derecho en el nombre de la columna, seleccionar la opción de codificación de contenido y agregar esa columna (cuadro negro en la imagen).

y si desea ver el tamaño de ese contenido gzip, como @Outfast Source, puede hacer clic en el icono que está al lado de Ver (que se muestra como el cuadro Verde en la imagen).

para que pueda ver qué contenido está habilitado para gzip.

ingrese la descripción de la imagen aquí


Esta es una gran respuesta, pero <kbd> Content-Encoding </kbd> se ha movido bajo <kbd> Encabezados de respuesta </kbd>.
Dan Dascalescu


8

Escribí este script basado en la respuesta del zoul:

#!/bin/bash

URL=$1
PLAIN="$(curl $URL --silent --write-out "%{size_download}\n" --output /dev/null)"
GZIPPED="$(curl $URL --silent -H "Accept-Encoding: gzip,deflate" --write-out "%{size_download}\n" --output /dev/null)"

if test $PLAIN -gt $GZIPPED
then echo "supported"
else echo "unsupported"
fi

ejemplo:

$ ./script.sh https://example.com/
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.