LinuxCommandLibrary

httping

Ping HTTP/HTTPS servers to check availability

TLDR

Ping the specified URL

$ httping -g [url]
copy

Ping the web server on host and port
$ httping -h [host] -p [port]
copy

Ping the web server on host using a TLS connection
$ httping -l -g https://[host]
copy

Ping the web server on host using HTTP basic authentication
$ httping -g http://[host] -U [username] -P [password]
copy

SYNOPSIS

httping [options...] <URL>

PARAMETERS

-c
    Stop after sending requests (default unlimited).

-d
    Daemon mode: no output to stdout/stderr.

-f
    Flood mode: send requests as fast as possible.

-g
    Use HTTP GET method (default: HEAD).

-G
    Use HTTP POST method.

-H
    Use HTTP HEAD method (default).

-i
    Seconds between requests (default 1.0).

-l
    Bind to local address/IP .

-p
    Target port (default 80/443).

-q
    Quiet mode: suppress normal output.

-r
    Enable HTTP/1.1 request pipelining.

-s
    Request body size in bytes.

-S
    Request body content as .

-t
    Per-request timeout in seconds (default 10).

-u
    Use HTTPS (or specify https:// URL).

-v
    Verbose output.

-x
    Maximum simultaneous connections.

-z
    TCP LINGER value in seconds.

-h
    Show help.

-V
    Show version.

DESCRIPTION

httping is a command-line utility designed to measure the latency of HTTP servers in a manner similar to the ping command for ICMP. It sends repeated HTTP requests (default HEAD) to a specified URL and displays real-time statistics such as minimum, average, maximum response times, standard deviation, packet loss (timeouts), and throughput.

Unlike one-off tools like curl, httping provides continuous monitoring until interrupted (Ctrl+C), at which point it shows a summary. It's particularly useful for:
• Diagnosing web server performance bottlenecks.
• Monitoring latency in load-balanced environments.
• Verifying service availability without full page loads.

Key capabilities include multiple concurrent connections for higher load simulation, custom HTTP methods (GET, POST, etc.), request body sizes, HTTP/1.1 pipelining, SSL/TLS support via -u or HTTPS URLs, and connection reuse. Output mimics ping with bars for latency distribution.

Installation: Available in most distro repos (apt install httping, yum install httping) or compile from source at vanheusden.com/httping. Requires libssl for HTTPS. Ideal for sysadmins and DevOps for quick HTTP health checks.

CAVEATS

Measures HTTP response time only, not application logic or full content delivery. Servers may throttle HEAD requests or block aggressive pinging. Timeouts count as loss; high load can skew results. No HTTP/2 support in standard versions.

USAGE EXAMPLES

Basic ping: httping www.example.com
10 requests every 0.5s: httping -c 10 -i 0.5 www.example.com
GET with 1KB body, 5 connections: httping -g -s 1024 -x 5 example.com
HTTPS flood: httping -f -u www.example.com

OUTPUT SAMPLE

PING www.example.com: -- 18.4/23.1/34.2/25.6 0.0% 43/s
--- www.example.com ping statistics ---
10 requests, 0 timeouts, 100.0% success
min/avg/max/std = 18.4/23.1/34.2/5.2 ms

HISTORY

Developed by Ronald van Kuijk starting in 2003-2004 as an open-source tool to fill the gap for HTTP-specific pinging. Initially released under GPL; maintained sporadically with updates for modern SSL and features. Source at http://www.vanheusden.com/httping/; packaged in major distros since mid-2000s.

SEE ALSO

ping(8), curl(1), wget(1), ab(1), siege(1)

Copied to clipboard