Learn How to Use http stat to Find out Website’s Performance


HTTP state is a Python3 script that visualizes web curl(1) statistics. This script is written in a single file without a dependency. This article explains about How to Use http stat to Find out a Website’s Performance

Installing httpstat

There are two ways to install httpstat on Ubuntu as shown below−

  • Download the script directly.
  • Through Python pip.

Installing from Script

To install httpstat from direct script, use the following command−

$wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py

The sample output should be like this −

--2016-12-19 11:27:18-- https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.100.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.100.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10577 (10K) [text/plain]
Saving to: ‘httpstat.py’

httpstat.py 100%[===================>] 10.33K --.-KB/s in 0.02s

2016-12-19 11:27:20 (433 KB/s) - ‘httpstat.py’ saved [10577/10577]

Installing from Python pip

Before installing httpstat, It should require a python-pip package on Ubuntu. To install python-pip package, use the following command −

$sudo apt install python-pip

The sample output should be like this −

Building dependency tree
Reading state information... Done
The following additional packages will be installed:
   libexpat1-dev libpython-all-dev libpython-dev libpython2.7 libpython2.7-dev
   libpython2.7-minimal libpython2.7-stdlib python-all python-all-dev
   python-dev python-pip-whl python-pkg-resources python-setuptools
   python-wheel python2.7 python2.7-dev python2.7-minimal
Suggested packages:
   python-setuptools-doc python2.7-doc binfmt-support
The following NEW packages will be installed:
   libexpat1-dev libpython-all-dev libpython-dev libpython2.7-dev python-all
   python-all-dev python-dev python-pip python-pip-whl python-pkg-resources
   python-setuptools python-wheel python2.7-dev
The following packages will be upgraded:
   libpython2.7 libpython2.7-minimal libpython2.7-stdlib python2.7
   python2.7-minimal
5 upgraded, 13 newly installed, 0 to remove and 284 not upgraded.
Need to get 29.8 MB/34.6 MB of archives.
After this operation, 45.1 MB of additional disk space will be used.
......................................................................................

To install httpstat, use the following command −

$ pip install httpstat

The sample output should be like this −

Collecting httpstat
   Downloading httpstat-1.2.1-py2-none-any.whl
Installing collected packages: httpstat
Successfully installed httpstat

Usage of httpstat

If you are installed httpstat through direct script, use the following command−

$ python httpstat.py tutorialspoint.com

The sample output should be like this −

Connected to 117.18.237.191:80 from 192.168.1.182:58492

HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Origin: *
Content-Type: text/html; charset=UTF-8
Date: Mon, 19 Dec 2016 06:09:15 GMT
Last-Modified: Mon, 19 Dec 2016 05:20:54 GMT
Server: ECS (pnq/AF9C)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 92840

Body stored in: /tmp/tmpvwKIfK

DNS Lookup             TCP Connection             Server Processing             Content Transfer
[ 253ms          |          16ms       |                15ms       |                   32ms ]
                 |                     |                           |                        |
            namelookup:253ms           |                           |                        |
                                connect:269ms                      |                        |
                                                           starttransfer:284ms              |
                                                                                       total:316ms

Usage of httpstat through Python Pip

If you have installed httpstat through python pip, use the following command−

$ httpstat sendfiles.net

The sample output should be like this −

Connected to 115.112.255.70:80 from 192.168.1.182:46878
HTTP/1.1 200 OK
Date: Mon, 19 Dec 2016 06:11:59 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16
X-Powered-By: PHP/5.4.16
Set-Cookie: PHPSESSID=ftvfqeu3gnr05a95hc2donbv16; path=/
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
Vary: User-Agent
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

Body stored in: /tmp/tmpq7FNyi

DNS Lookup                TCP Connection               Server Processing           Content Transfer
[ 254ms                |        1ms        |              6ms             |                  2ms ]
                       |                   |                              |                      |
                namelookup:254ms           |                              |                      |
                                  connect:255ms                           |                      |
starttransfer:261ms |
total:263ms

Output Explanation

The above example gives the output of tutorialspoint.com and sendfiles.net. It involves the information about Date,Server, X-Powered-by way of, Set-Cookie,vary, content material-kind, and many such valuable information to search out the stats of web pages.

There are so many bunch of options are on hand in httpstat, To get the more understanding about httpstat, use the following command-

$ httpstat --help

The sample output should be like this −

Usage: httpstat URL [CURL_OPTIONS]
httpstat -h | --help
httpstat --version

Arguments:
URL url to request, could be with or without `http(s)://` prefix

Options:
CURL_OPTIONS any curl supported options, except for -w -D -o -S -s,
which are already used internally.
-h --help show this screen.
--version show version.

Environments:
   HTTPSTAT_SHOW_BODY      Set to `true` to show resposne body in the output,
                           note that body length is limited to 1023 bytes, will be
                           truncated if exceeds. Default is `false`.
   HTTPSTAT_SHOW_IP        By default httpstat shows remote and local IP/port address.
                           Set to `false` to disable this feature. Default is `true`.
   HTTPSTAT_SHOW_SPEED     Set to `true` to show download and upload speed.
                           Default is `false`.
   HTTPSTAT_SAVE_BODY      By default httpstat stores body in a tmp file,
                           set to `false` to disable this feature. Default is `true`
   HTTPSTAT_CURL_BIN       Indicate the curl bin path to use. Default is `curl`
                           from current shell $PATH.
   HTTPSTAT_DEBUG          Set to `true` to see debugging logs. Default is `false`

The above command gives the clear information about httpstat and options for usage.After this article, you will be able to understand How to Install httpstat to find out a website Performance Statistics on Ubuntu. In our next articles, we will come up with more Linux based tricks and tips. Keep reading!

Updated on: 21-Jan-2020

136 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements