wget命令:通过发送gzip标头下载压缩文件
时间:2020-01-09 10:46:06 来源:igfitidea点击:
由于现代Web浏览器支持并接受压缩数据传输,因此我已启用gzip压缩。
但是,我无法使用wget命令执行此操作。
如何强制wget使用gzip编码下载文件?
GNU wget命令是大多数Linux发行版上的免费默认实用程序,用于从Web上非交互式下载文件。
它支持各种协议,例如HTTP,HTTPS和FTP协议,以及通过HTTP代理进行的检索。
您可以将HTTP服务器发送的标头保存到文件中实际内容之前,并以空行作为分隔符。
--header选项
语法如下:
wget --header='HEADER-LINE' http://server1.theitroad.local/file.tar.gz wget -option1 --header='HEADER-LINE' http://server1.theitroad.local/images.bmp ### compressed speed test ### wget -O /dev/null --header='HEADER-LINE' http://server1.theitroad.local/lib1html5v2.js ### debug on screen ## wget -O- --header='HEADER-LINE' http://server1.theitroad.local/file.tar.gz
您可以在每个HTTP请求中发送HEADER-LINE以及其余的标头。
提供的标头按原样发送,这意味着它必须包含用冒号分隔的名称和值,并且不能包含换行符。
您可以通过多次指定--header
来定义一个以上的追加标头,如下所示:
wget --header='Accept-Charset: iso-8859-2' --header='Accept-Language: hr' http://server1.theitroad.local/file.css
示例:使用wget命令测试gzip编码
要发送gzip编码请求,请执行:
$ wget --header='Accept-Encoding: gzip' http://www.theitroad.local/hardware/linux-find-and-recover-wasted-disk-space/
输出示例:
--2012-10-28 17:48:06-- http://www.theitroad.local/hardware/linux-find-and-recover-wasted-disk-space/ Resolving www.theitroad.local... 75.126.153.206 Connecting to www.theitroad.local|75.126.153.206|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: `index.html.54' [ <- ] 12,657 --.-K/s in 0.02s 2012-10-28 17:48:07 (583 KB/s) - `index.html.54' saved [12657]
下载不带gzip的示例页面:
$ wget http://www.theitroad.local/hardware/linux-find-and-recover-wasted-disk-space/
输出示例:
--2012-10-28 17:48:37-- http://www.theitroad.local/hardware/linux-find-and-recover-wasted-disk-space/ Resolving www.theitroad.local... 75.126.153.206 Connecting to www.theitroad.local|75.126.153.206|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: `index.html.55' [ <- ] 45,729 73.7K/s in 0.6s 2012-10-28 17:48:38 (73.7 KB/s) - `index.html.55' saved [45729]
从以上两个输出:
- 使用wget命令在0.2秒内下载了启用gzip的页面。
- 不带gzip的页面是使用wget命令在0.6秒内下载的。
使用此选项进行测试:
- 测试和排除HTTP服务器问题
- CDN边缘节点速度。
- 您的原始服务器速度。
- Web服务器gzip可比性。
- 负载均衡器/反向代理服务器测试。
从wget v1.10开始,此选项可用于覆盖标头,否则标头将自动生成。
在此示例中,使用wget连接到www.theitroad.local,但在Host标头中指定beta.theitroad.local(即,对于相同的域名,来自beta.theitroad.local的显示页面:
wget --header="Host: beta.theitroad.local" http://www.theitroad.local/
最后,您可以将HTTP服务器发送的标头保存到文件中,运行:
$ wget --save-headers http://www.theitroad.local $ vi index.html