如何判断我的服务器是否正在提供GZipped内容?

时间:2012-02-04 10:31:29

标签: nginx compression gzip

我在NGinx服务器上有一个webapp。我在conf文件中设置gzip on,现在我正在尝试查看它是否有效。 YSlow表示不是,但进行测试的6个网站中有5个表示确实如此。我怎样才能得到一个明确的答案,为什么结果有差异?

7 个答案:

答案 0 :(得分:188)

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

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

答案 1 :(得分:73)

<强>更新

Chrome改变了报告的方式(如果感兴趣,请参阅原始回答)。您可以使用开发人员工具(F12)来判断。转到“网络”选项卡,选择要检查的文件,然后查看右侧的“标题”选项卡。如果你被gzip压缩,那么你会在Content-Encoding中看到它。

在这个例子中,slider.jpg确实被gzip压缩。

enter image description here

将这个与您所在的页面进行比较并查看png文件,您将看不到这样的名称。

enter image description here

为了清楚起见,这不是因为一个是jpg而一个是png。这是因为一个是gzip而另一个不是。


上一个答案

在Chrome中,如果您启动开发者工具并转到网络标签,那么如果没有压缩它将显示以下内容:

enter image description here

以下是否有压缩:

enter image description here

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

答案 2 :(得分:24)

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

Content-Encoding    gzip

如果服务器支持gzip内容,则应显示此内容。

答案 3 :(得分:7)

您可以快速使用以下网络服务:http://www.whatsmyip.org/http-compression-test/

Google Chrome&#34; Audits&#34;开发人员工具中的工具也派上用场。

答案 4 :(得分:6)

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

答案 5 :(得分:6)

在Chrome的新版本中,开发人员工具&gt;在网络中,您可以右键单击列名称,然后选择内容编码选项并添加该列(图像中的黑框)。

如果你想看到那个gzip内容的大小,比如@Outfast Source,你可以点击View旁边的图标(在图像中显示为绿框)。

这样你就可以看到哪些内容是gzip启用的。

enter image description here

答案 6 :(得分:0)

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

这是我见过的唯一一个会解析你的页面并查找所有直接引用的资源(css,js文件等)的工具,并告诉你是否每个都是gzip压缩,而不是只告诉你是否有索引页面是gzipped。

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