wget Command: Download Compressed File By Sending gzip Headers

I have turned on gzip compression as modern web browser supports and accepts compressed data transfer. However, I’m unable to do so with the wget command. How do I force wget to download file using gzip encoding?

GNU wget command is a free and default utility on most Linux distribution for non-interactive download of files from the Web.

Tutorial details
Difficulty level Easy
Root privileges No
Requirements wget
Est. reading time N/A
It supports various protocols such as HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies.

You can save the headers sent by the HTTP server to the file, preceding the actual contents, with an empty line as the separator.

The --header option

The synax is as follows:

wget --header='HEADER-LINE' http://server1.cyberciti.biz/file.tar.gz
wget -option1 --header='HEADER-LINE' http://server1.cyberciti.biz/images.bmp 
 
### compressed speed test ###
wget -O /dev/null --header='HEADER-LINE' http://server1.cyberciti.biz/lib1html5v2.js
 
### debug on screen ##
wget -O- --header='HEADER-LINE' http://server1.cyberciti.biz/file.tar.gz

You can send HEADER-LINE along with the rest of the headers in each HTTP request. The supplied header is sent as-is, which means it must contain name and value separated by colon, and must not contain newlines. You may define more than one additional header by specifying --header more than once as follows:

wget --header='Accept-Charset: iso-8859-2' --header='Accept-Language: hr'  http://server1.cyberciti.biz/file.css

Example: Testing gzip encoding with wget command

To send gzip encoding request, enter:
$ wget --header='Accept-Encoding: gzip' http://www.cyberciti.biz/hardware/linux-find-and-recover-wasted-disk-space/
Sample outputs:

--2012-10-28 17:48:06--  http://www.cyberciti.biz/hardware/linux-find-and-recover-wasted-disk-space/
Resolving www.cyberciti.biz... 75.126.153.206
Connecting to www.cyberciti.biz|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]

Download the sample page without gzip:
$ wget http://www.cyberciti.biz/hardware/linux-find-and-recover-wasted-disk-space/
Sample outputs:

--2012-10-28 17:48:37--  http://www.cyberciti.biz/hardware/linux-find-and-recover-wasted-disk-space/
Resolving www.cyberciti.biz... 75.126.153.206
Connecting to www.cyberciti.biz|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]

From the above two outputs:

  1. gzip enabled page was downloaded in 0.2 seconds using wget command.
  2. Without gzip page was downloaded in 0.6 seconds using wget command.

Use this option to test:

  1. Testing and troubleshooting HTTP server problems
  2. CDN edge node speed.
  3. Your origin server speed.
  4. Web server gzip comparability.
  5. Load balancer / reverse proxy server testing.

As of wget v1.10, this option can be used to override headers otherwise generated automatically. In this example wget is used connect to www.cyberciti.biz, but to specify ‘beta.cyberciti.biz’ in the Host header (i.e. show page from beta.cyberciti.biz for same domain name :

wget --header="Host: beta.cyberciti.biz" http://www.cyberciti.biz/

Finally, you can ave the headers sent by the HTTP server to the file, run:
$ wget --save-headers http://www.cyberciti.biz
$ vi index.html

Sample outputs:

Fig.01: wget saving the http headers


🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 0 comments... add one


CategoryList of Unix and Linux commands
Disk space analyzersdf duf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Modern utilitiesbat exa
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg glances gtop jobs killall kill pidof pstree pwdx time vtop
Searchingag grep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
0 comments… add one

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum