Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use curl to compare the size of the page with deflate enabled and without using it

Tags:

curl

gzip

size

I have apache with mod_deflate enabled. I would like to find out the size of the page with mod_deflate enabled and without, and compare how much performance is achieved in size. In curl, I seem to ask server for gzipped content using --compressed and to send the normal, but can't seem to find the size of that page. Any idea how to do that?

curl --head http://site

HTTP/1.1 200 OK Date: Wed, 08 Feb 2012 08:48:04 GMT Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By: PHP/5.2.12 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: PHPSESSID=ce39b051a9cd493cbe4a86056e11d61f; path=/ Vary: Accept-Encoding Content-Type: text/html 

curl --head --compressed http://site

HTTP/1.1 200 OK Date: Wed, 08 Feb 2012 08:48:19 GMT Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By: PHP/5.2.12 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: PHPSESSID=513b8ac5818fd043471c8aac44355898; path=/ Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 20 Content-Type: text/html 
like image 585
Anjesh Avatar asked Feb 08 '12 08:02

Anjesh


People also ask

What does curl compressed do?

curl allows you to ask HTTP and HTTPS servers to provide compressed versions of the data and then perform automatic decompression of it on arrival. In situations where bandwidth is more limited than CPU this will help you receive more data in a shorter amount of time.

Does curl support gzip?

In most distributions, PHP Curl is compiled with gzip , deflat , and br (Brotli). However, it is also possible to add support for zstd by compiling libcurl with zstd support, and recompiling PHP with the new libcurl header files.

What is curl d?

Curl is a command-line tool for Linux, Windows, and macOS that can be used to post requests to the server. You can post forms, upload files, or make custom requests to API endpoints with Curl. To pass data to Curl, use the -d command line option. -d "data to send"


1 Answers

I think the only reliable way to get the size, is to actually download the file. However, curl offers a very convenient option for only outputting data of interest

-w/--write-out <format>     Defines what to display on stdout after a completed and successful operation.  [...]  size_download  The total amount of bytes that were downloaded. 

which means you can do something like this:

curl -so /dev/null http://www.whatsmyip.org/http-compression-test/ -w '%{size_download}' 

Output:

8437 

And to get the compressed size:

curl --compressed -so /dev/null http://www.whatsmyip.org/http-compression-test/ -w '%{size_download}' 

Output:

3225 

After that your comparison should be trivial.

like image 175
flesk Avatar answered Sep 17 '22 04:09

flesk