logo (C) Bas Schuiling

httping

Introduction

Httping is like 'ping' but for http-requests.
Give it an url, and it'll show you how long it takes to connect, send a request and retrieve the reply (only the headers). Be aware that the transmission across the network also takes time! So it measures the latency of the webserver + network.

Download

Latest version can be found on GitHub.

Download link:httping-1.4.4.tgz(source)
previous version:httping-1.4.3.tgz(source)
httping-1.4.1.tgz(source)
httping-1.4.0.tgz(source)
httping-1.3.2.tgz(source)
httping-1.3.1.tgz(source)
httping-1.3.0.tgz(source)
RPMhttping-1.2.1-0.src.rpm(thanks to Udo van den Heuvel)
httping-1.0.6-bin-arm.tgz(binary for ARM processor)
httping-1.2.2-0.ppc.rpm(binary for PPC processor - Linux on Mac)
RPM .spec file:httping.spec(Linux)

Platforms

Httping is verified to run on Linux as well as FreeBSD. FreeBSD users can install the latest version using:
$ cd /usr/ports/net/httping
$ make install

With some changes in the Makefile it runs on IRIX as well.

Changes

1.5.1 persistent connections
1.4.1 fixes so that it works again on FreeBSD again
1.4.0 added IPv6 support
1.3.2 added cookie and authentication support
1.3.1 one can now add a host to ping directly on the command-line, no longer need to use -g or other switches (altough they're still supported)
1.3.0 httping used to put an absolute URI in the GET/HEAD request when not via proxy which is incorrect, that is now fixed
1.2.9 binding to an adapter did not work, 'SIGPIPE' was not handled correctly
1.2.8 fixed a segfault introduced in version 1.2.7
1.2.7 http statuscodes are now correctly interpreted (if selected)
1.2.6 Can now split measured latency in time to connect and time to exchange a request with the HTTP server
1.2.5 showing the status code would garble the screen
1.2.4 fixed memory-leak in SSL code
1.2.3 added audible ping (patch by Nico Golde)
1.2.2 one can now set the interface through which the http-pings will be send
1.2.1 fix to get httping to work with sites that use the Apache mod_security module
1.0.10 fixed a compilationproblem on some platforms
1.0.9 one can now let HTTPing emit the X509 encryption key certificate(s) MD5 fingerprint when connecting to an SSL host
1.0.8 when using the '-b' switch a summary is displayed with the min, the max and the avg transferspeed. one can now limit the number of bytes transferred for the BPS calculation, added a man-page
1.0.7 httping can now also display the transferspeed in KB/s
1.0.6 one can now also do a GET instead of a HEAD request so that also the transfer time of the page is measured
1.0.5 'resolve_once' would count an error even when no error occured while resolving
1.0.4 'machine readable output' would segfault when a timeout occured. fixed
1.0.2 httping can now be used as a Nagios plugin
1.0.1 DNS lookup(s) can now be taken out of the loop, also fixed handle leak
1.0.0 made the 'User-Agent'-request header configurable, also added switch for setting a 'Referer'-request header field. httping now also compiles on OpenBSD
0.0.96 added 'User-Agent' to the request headers to conform better to the HTTP standards
0.0.95 added license statements
0.0.94 one can now build httping without SSL support
0.0.93 in some cases when a connection failed, measuring would fail
0.0.92 closing of an SSL connection would sometimes fail while it was not really an error
0.0.91 fixed normal mode, added machine readable mode which only displays the time or -1 (configurable) in case of an error
0.0.9 added SSL support
0.0.8 when adding the switch '-s' httping also returns the statuscode of the webserver
0.0.7 timeout did not always work (when connection succeeded but the server did not respond), that is fixed. httping now also compiles on FreeBSD
0.0.6 allows you to set a timeout value, fixed the statistics when no successfull connections were made
0.0.5 also enables you to connect through a proxyserver
0.0.3 no longer ends up in a busy loop when it cannot connect to the selected host

Using httping from Nagios

define command{
        command_name    check_httping
        command_line    /usr/bin/httping -N 2 -c 1 -h $HOSTADDRESS$
        }

Links

 You might be interested in MultiTail: that program enables you to monitor logfiles while viewing the output of httping in a seperate window!
 Here you can read a proposal for an extension to the HTTP-protocol for a 'ping-method'.
 The people behind the Apache web-server have created an httping-like benchmarking tool: ab.

HTTPing in the news

 In the German 'Linux Magazin' of January 2006 there's an article about httping!
 In Linux Magazine of February 2006 (issue 63) Charly writes in his column about httping.

Known problems

If, after a TCP connection to an SSL host was successfully made, the host stops failing (= would not setup the SSL connection) the timeout can be considerably longer then what is set on the commandline.