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 3 minutes
It supports various protocols such as HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies.
Advertisement

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:

Unix / Linux: Wget Save The Http Headers Command

Fig.01: wget saving the http headers

🥺 Was this helpful? Please add a comment to show your appreciation or feedback.

nixCrat Tux Pixel Penguin
Hi! 🤠
I'm Vivek Gite, and I write about Linux, macOS, Unix, IT, programming, infosec, and open source. Subscribe to my RSS feed or email newsletter for updates.

0 comments… add one

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Your comment will appear only after approval by the site admin.