Come posso sapere se il mio server offre contenuti GZipped?


160

Ho una webapp su un server NGinx. Ho impostato gzip onil file conf e ora sto cercando di vedere se funziona. YSlow dice di no, ma 5 su 6 siti web che fanno il test dicono che lo è. Come posso ottenere una risposta definitiva su questo e perché c'è una differenza nei risultati?

Risposte:


229

Sembra che una possibile risposta è, ovviamente, 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

Nel secondo caso il client dice al server che supporta la codifica del contenuto e si può vedere che la risposta è stata effettivamente più breve, compressa.


3
Questo è vero, ma gzip può essere configurato per comprimere alcuni tipi di file ed escluderne altri. Quindi assicurati che i file che arriccia utilizzando questo test siano del tipo che verrà compresso.
Tyler Biscoe,

5
Suggerirei di usare anche -Lflag per curlseguire tutti i reindirizzamenti, ad esempio da non www a www.altrimenti il ​​risultato di size_download potrebbe essere sbagliato
vladkras

Se potessi impressionare una cosa sui miei sviluppatori più giovani, è l'importanza di avere una solida base unix. +1 per CURL. All'inizio è confuso, un salvavita quando lo conosci.
Akron,

105

Aggiornare

Chrome ha cambiato il modo in cui riporta (vedi la risposta originale se interessati). Puoi dirlo usando Strumenti per sviluppatori (F12). Vai alla scheda Rete, seleziona il file che vuoi esaminare e poi guarda la scheda Intestazioni sulla destra. Se sei gzip, allora lo vedrai nella codifica del contenuto.

In questo esempio, slider.jpg viene effettivamente compresso con gzip.

inserisci qui la descrizione dell'immagine

Confronta quello con questa stessa pagina in cui ti trovi e guarda un file png, non vedrai tale designazione.

inserisci qui la descrizione dell'immagine

Giusto per essere chiari, non è perché uno è un jpg e uno è un png. È perché uno è compresso con zip e l'altro no.


Risposta precedente

In Chrome, se si estraggono gli Strumenti per gli sviluppatori e si passa alla scheda Rete, verrà mostrato quanto segue in assenza di compressione:

inserisci qui la descrizione dell'immagine

E quanto segue se esiste la compressione:

inserisci qui la descrizione dell'immagine

In altre parole, lo stesso numero, in alto e in basso, significa nessuna compressione.


3
Potrebbe essere meglio ispezionare le intestazioni di risposta. Questo metodo non dice se viene utilizzata la compressione gzip o qualche altro algoritmo di compressione.
Samuel,

4
In Strumenti per gli sviluppatori di Chrome nella scheda Rete, fai clic sul nome / collegamento della risorsa per la richiesta e puoi controllare le intestazioni di risposta in questo modo e vedere gzipla chiave di codifica del contenuto! [Screenshot] [1] [1]: i.stack .imgur.com / Bpb5W.png (http://content.screencast.com/users/…
d48

1
Le recenti versioni di Chrome (versione 44.0.2403.130 m) non sembrano mostrare i dettagli di dimensioni / contenuto - intendo i dettagli di gzip - i.imgur.com/MTz7DCM.png . Qualcuno sa il motivo per cui?
Andy Dufresne,

33

Vedi nelle intestazioni di risposta. In FireFox puoi verificare con Firebug.

Content-Encoding    gzip

Se il server supporta il contenuto gzip, questo dovrebbe essere visualizzato.


9
Lo ottieni solo se il tuo client ha inviato "Accept-Encoding: gzip, deflate"
Maciej Swic,

2
Aggiornamento rapido per vedere la codifica del file originale, come quando il file viene servito con lo stato 304, sembra che la versione memorizzata nella cache sia già decompressa! (nel mio caso, vedo un'intestazione ETag anziché la codifica dei contenuti)
ptim

11

Nella nuova versione di Chrome, Strumenti per sviluppatori> rete, puoi fare clic con il tasto destro sul nome della colonna, selezionare l'opzione di codifica del contenuto e aggiungere quella colonna (riquadro nero nell'immagine).

e se vuoi vedere la dimensione di quel contenuto gzip, come @Outfast Source - allora puoi fare clic sull'icona che si trova accanto a Visualizza (visualizzata come casella verde nell'immagine).

così puoi vedere quale contenuto è abilitato per gzip.

inserisci qui la descrizione dell'immagine


Questa è un'ottima risposta, ma <kbd> Codifica contenuto </kbd> è stata spostata in <kbd> Intestazioni di risposta </kbd>.
Dan Dascalescu il


8

Ho scritto questo script in base alla risposta di 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

esempio:

$ ./script.sh https://example.com/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.