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?
问题:
回答1:
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.
回答2:
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.
Compare that to this very page that you are on and look at a png file, you will see no such designation.
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:
And the following if there IS compression:
In other words, the same number, top and bottom, means no compression.
回答3:
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.
回答4:
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.
回答5:
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/
回答6:
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.
回答7:
Another useful tool: http://gzipwtf.com
It's the only tool I've seen that will parse your page and find all directly referenced resources (css, js files etc.), and tell you if each of them are gzipped, instead of just telling you if the index page is gzipped.
Also provides other useful statistics (time to download resource, speed, etc.)
回答8:
None of the online tools above could test my URL which was an XML file, however this one does the job right:
http://www.feedthebot.com/tools/gzip/