我怎么知道我的服务器是否提供GZip内容?

我在NGinx服务器上有一个web应用程序。 我在conf文件中设置了gzip on ,现在我正在尝试查看它是否可用。 YSlow说这不是,但是6个网站中有5个说这是testing。 我怎样才能得到一个明确的答案,为什么有结果的差异?

看起来像一个可能的答案,毫不奇怪, 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 

在第二种情况下,客户端告诉服务器它支持内容编码,你可以看到响应确实更短,压缩​​。

更新

Chrome改变了它报道的方式(如果感兴趣,请参阅原始答案)。 您可以使用开发人员工具(F12)进行分析。 转到“networking”选项卡,select要检查的文件,然后查看右侧的“标题”选项卡。 如果你被压缩,那么你将在Content-Encoding中看到。

在这个例子中,slider.jpg的确被压缩了。

在这里输入图像说明

将它与你正在浏览的页面进行比较,然后查看一个PNG文件,你将看不到这样的名称。

在这里输入图像说明

只是要清楚,不是因为一个是jpg,一个是png。 这是因为一个是gzipped而另一个不是。


以前的答案

在Chrome中,如果您拉起开发工具并转到networking选项卡,则在没有压缩的情况下将显示以下内容:

在这里输入图像说明

而下面如果有压缩:

在这里输入图像说明

换句话说,相同的数字,顶部和底部,意味着没有压缩。

请参阅响应标题。 在FireFox中,你可以检查Firebug。

 Content-Encoding gzip 

如果服务器支持gzip内容,那么应该显示这个。

您可以快速使用Web服务,如: http : //www.whatsmyip.org/http-compression-test/

Google Chrome的开发人员工具中的“审计”工具也可以派上用场。

我根据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 

例:

 $ ./script.sh https://example.com/ 

在新版本的chrome中,开发者工具>networking,你可以右击列名,select内容编码选项并添加该列(图像中的黑色框)。

如果要查看gzip内容的大小(比如@Outfast Source),则可以单击视图旁边的图标(在图像中显示为绿色框)。

所以你可以看到哪些内容是gzip启用。

在这里输入图像说明

另一个有用的工具: http : //gzipwtf.com

这是我见过的将parsing你的页面,并find所有直接引用的资源(CSS,JS文件等),并告诉你,如果他们每个人都gzipped,而不是只是告诉你,如果索引页面被压缩的唯一工具。

还提供其他有用的统计资料(时间下载资源,速度等)

上面的在线工具都不能testing我的URL,它是一个XML文件,但是这个工作正确:

http://www.feedthebot.com/tools/gzip/

gzip测试样本