我在NGinx服务器上有一个webapp。我在conf文件中设置gzip on
,现在我正在尝试查看它是否有效。 YSlow表示不是,但进行测试的6个网站中有5个表示确实如此。我怎样才能得到一个明确的答案,为什么结果有差异?
答案 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压缩。
将这个与您所在的页面进行比较并查看png文件,您将看不到这样的名称。
为了清楚起见,这不是因为一个是jpg而一个是png。这是因为一个是gzip而另一个不是。
上一个答案
在Chrome中,如果您启动开发者工具并转到网络标签,那么如果没有压缩它将显示以下内容:
以下是否有压缩:
换句话说,相同的数字,顶部和底部,意味着没有压缩。
答案 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启用的。
答案 6 :(得分:0)
另一个有用的工具:http://gzipwtf.com
这是我见过的唯一一个会解析你的页面并查找所有直接引用的资源(css,js文件等)的工具,并告诉你是否每个都是gzip压缩,而不是只告诉你是否有索引页面是gzipped。
还提供其他有用的统计信息(下载资源,速度等的时间)