How can I tell if my server is serving GZipped content?
Asked Answered
T

8

210

I have a webapp on a NGinx server. I set gzip on in the conf file and now I'm trying to see if it works. YSlow says it's not, but 5 out of 6 websites that do the test say it is. How can I get a definite answer on this and why is there a difference in the results?

Thereinto answered 4/2, 2012 at 10:31 Comment(0)
T
289

It looks like one possible answer is, unsurprisingly, 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

In the second case the client tells the server that it supports content encoding and you can see that the response was indeed shorter, compressed.

Toxoplasmosis answered 4/2, 2012 at 10:37 Comment(3)
This is true, but gzip can be configured to compress certain file types, and exclude others. So be sure that the files you curl using this test are of the type that will be compressed.Bilek
I would suggest using -L flag for curl too to follow all redirects, e.g. from non-www to www. otherwise result of size_download may be wrongSmutch
If I could impress one thing on my younger devs, its the importance of having a solid unix foundation. +1 for CURL. Its confusing at first, a life saver when you know it.Heads
S
163

Update

Chrome changed the way it reports (see original answer if interested). You can tell using Developer Tools (F12). Go to the Network tab, select the file you want to examine and then look at the Headers tab on the right. If you are gzipped, then you will see that in the Content-Encoding.

In this example, slider.jpg is indeed being gzipped.

enter image description here

Compare that to this very page that you are on and look at a png file, you will see no such designation.

enter image description here

Just to be clear, it isn't because one is a jpg and one is a png. It is because one is gzipped and the other one isn't.


Previous Answer

In Chrome, if you pull up the Developer Tools and go to the Network tab, then it will show the following if there is no compression:

enter image description here

And the following if there IS compression:

enter image description here

In other words, the same number, top and bottom, means no compression.

Spate answered 16/9, 2013 at 18:15 Comment(3)
It may be better to inspect the response headers. This method does not say whether gzip compression is begin used or some other compression algorithm.Elegance
In Chrome Developer Tools on the Network tab, click on the asset name/link for the request and you can inspect the Response Headers like so and see gzip for the Content-Encoding key ![screenshot][1] [1]: i.stack.imgur.com/Bpb5W.png(http://content.screencast.com/users/…Sizeable
The recent chrome versions (Version 44.0.2403.130 m) do not seem to show the size/content details - I mean the gzip details - i.imgur.com/MTz7DCM.png. Does anyone know the reason why?Leotie
D
36

See in the response headers. In FireFox you may check with Firebug.

Content-Encoding    gzip

If server supports gzip content then this should be displayed.

Distended answered 4/2, 2012 at 10:38 Comment(2)
You only get this if your client has sent "Accept-Encoding: gzip,deflate"Surface
Hard refresh to see the original file's encoding, as when the file is served with status 304, it seems that the cached version is already unzipped! (in my case, I'm seeing an ETag header rather than Content-Encoding)Tranche
S
22

In new version of chrome, Developer tools > network, you can right click on Column name, and select content-encoding option and add that column (black box in image).

and if you want to see the size of that gzip content, as @Outfast Source - than you can click on icon which is next to View (displayed as Green box in image).

so you can see which content is gzip enabled.

enter image description here

Shoer answered 29/9, 2016 at 4:32 Comment(1)
This is a great answer, but <kbd>Content-Encoding</kbd> has moved under <kbd>Response Headers</kbd>.Goiter
M
11

You could quickly use a web service like: http://www.whatsmyip.org/http-compression-test/

Google Chrome's "Audits" tool in the developer tools comes in handy as well.

Montiel answered 25/4, 2013 at 21:41 Comment(0)
C
9

I wrote this script based on the zoul's answer:

#!/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

example:

$ ./script.sh https://example.com/
Coffeepot answered 22/11, 2015 at 18:13 Comment(0)
D
3

since it's first search result in google, I'm going to edit one of the answers to include Brotli compression too, its short name is br and you can use it with curl or watch for it via F12 in browser.

for curl edited from @zoul answer:

$ curl http://example.com/ --silent --write-out "%{size_download}\n" --output /dev/null
31032
$ curl http://example.com/ --silent -H "Accept-Encoding: gzip,deflate,br" --write-out "%{size_download}\n" --output /dev/null
2553
Dearr answered 7/3, 2023 at 19:26 Comment(2)
And since the underlying library also supports zstd you can check for that as well: "Accept-Encoding: gzip,deflate,br,zstd". If one just wants to check if any compression is supported then curl https://example.com/ --silent --compressed --head | grep content-encoding will do the job by looking at just the headers returned. For a specific compression's support Accept-Encoding the one you are looking for.Nanji
@Nanji nice! Thanks for the compression check command!Dearr
B
2

Here's my one-liner:

curl https://google.com --silent -L -H "Accept-Encoding: gzip,deflate" --output testFile && file testFile

The file command line tool tells you what type of file it is. You should see this:

testFile: gzip compressed data, max compression, original size modulo 2^32 13926
Boarfish answered 27/7, 2022 at 22:13 Comment(1)
one of the best suggestions, completely underratedCatbird

© 2022 - 2024 — McMap. All rights reserved.