Linux/Unix Curl:确定网站是否使用Gzip/Deflate

时间:2020-01-09 10:42:12  来源:igfitidea点击:

如何查找使用称为curl的Unix命令行实用工具压缩或者压缩网页?
如何确保mod_deflate或者mod_gzip在Apache Web服务器下正常工作?

压缩内容后,下载速度会更快,因为在许多情况下文件较小,不到原始文件大小的四分之一。
这对于JavaScript和CSS文件(包括html)非常有用,更快的下载可以为最终用户更快地呈现网页。

Apache模块mod_deflate或者mod_gzip提供了DEFLATE输出过滤器,该过滤器允许将服务器的输出压缩后再通过网络发送给客户端。
大多数现代的Web浏览器都支持此功能。
您可以使用curl命令使用以下简单语法来查找网页是否被压缩。

语法

语法为:

curl -I -H 'Accept-Encoding: gzip,deflate' http://example.com

或者
curl -s -I -L -H 'Accept-Encoding: gzip,deflate' http://example.com

其中:

  • -s不显示进度表或者错误消息。
  • -I仅在HTTP标头上工作。
  • -H'Accept-Encoding:gzip,deflate'将HTTP发送到服务器时,在请求中发送额外的标头。
  • 如果服务器报告所请求的页面已移动到其他位置(由Location:标头和3XX响应代码指示),则-L选项将使curl在新位置上重做请求。
  • http://example.com您的URL,可以以http或者https开头。

例子

执行以下命令:

curl -I -H 'Accept-Encoding: gzip,deflate' http://www.theitroad.local/

输出示例:

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 06 Nov 2012 18:59:26 GMT
Content-Type: text/html
Connection: keep-alive
X-Whom: l2-com-cyber
Vary: Cookie
Vary: Accept-Encoding
Last-Modified: Tue, 06 Nov 2012 18:51:58 GMT
Cache-Control: max-age=152, must-revalidate
Content-Encoding: gzip
X-Galaxy: Andromeda-1
X-Origin-Type: DynamicViaDAL

卷曲命令接受编码gzip bash测试功能

创建一个bash shell函数并添加到您的~/.bashrc文件中:

gzipchk(){ curl -I -H 'Accept-Encoding: gzip,deflate' "$@" | grep --color 'Content-Encoding:'; }

或者使用静默模式隐藏进度栏:

gzipchk(){ curl -sILH 'Accept-Encoding: gzip,deflate' "$@" | grep --color 'Content-Encoding:'; }

保存并关闭文件。
重新加载~/.bashrc文件,运行:

$ source ~/.bashrc file

测试gzipchk()如下:

$ gzipchk www.theitroad.local
gzipchk http://www.redhat.com