Siege
Outil de test de charge et de stress HTTP/HTTPS qui simule des utilisateurs concurrents sollicitant une ou plusieurs URL pour tester la performance d'un serveur web sous charge. HTTP/HTTPS load and stress-testing tool that simulates concurrent users hitting one or more URLs to test web server performance under load.
↗ https://www.joedog.org/siege-home/Overview
Siege is an HTTP/HTTPS benchmarking and stress-testing tool that simulates multiple concurrent users hammering a URL or list of URLs, reporting response times, throughput, and failure rates. On assessments it’s mainly used to check how an application or its rate-limiting/WAF behaves under concurrent load — useful for basic DoS-resilience checks and for confirming whether a login/API endpoint enforces any throttling at all.
Common Usage
50 concurrent simulated users, each firing 10 requests, against one URL
siege -c 50 -r 10 https://<target>/
Run for a fixed duration instead of a fixed rep count
siege -c 25 -t 1M https://<target>/
Hit a list of URLs, in random order, with a random delay between requests
siege -f urls.txt -c 20 -d 5 -i
Benchmark mode — no delay between requests, maximum stress
siege -c 100 -r 20 -b https://<target>/api/login
Single verbose request for debugging headers/response
siege -g https://<target>/
# urls.txt format — one URL per line, optional POST body
https://target/login POST username=admin&password=test
https://target/search?q=test
Tips
-i(internet mode) randomizes request order across the URL file, better simulating real traffic patterns than sequential replay- Watch the “Failed transactions” count in the summary — a rising failure rate under load often flags a WAF/rate-limit kicking in, which is useful signal on its own
~/.siegercholds persistent defaults (timeout, user-agent, logging) so you don’t have to repeat flags every run
Help / Man page
SIEGE 4.x
Usage: siege [options]
siege [options] URL
siege -f <file>
Options:
-c, --concurrent=NUM number of simulated concurrent users
-r, --reps=NUM number of times each user repeats the URL(s)
-t, --time=NUMm|NUMh run for a fixed duration instead of reps
-d, --delay=NUM max random delay (seconds) between requests
-f, --file=FILE read URLs from FILE
-i, --internet hit URLs in random order (simulate real traffic)
-b, --benchmark no delay between requests, maximum throughput
-g, --get perform a single GET/HEAD, print headers, exit
-v, --verbose show request results as they happen
-q, --quiet suppress verbose output
Vue d’ensemble
Siege est un outil de benchmark et de stress-test HTTP/HTTPS qui simule plusieurs utilisateurs concurrents martelant une URL ou une liste d’URL, en rapportant les temps de réponse, le débit et les taux d’échec. En mission, il sert principalement à vérifier comment une application ou son rate-limiting/WAF se comporte sous charge concurrente : utile pour des vérifications basiques de résilience au DoS et pour confirmer si un endpoint de connexion/API applique un quelconque throttling.
Utilisation courante
# 50 utilisateurs simulés concurrents, chacun envoyant 10 requêtes, contre une URL
siege -c 50 -r 10 https://<target>/
# Lancer pour une durée fixe plutôt qu'un nombre de répétitions fixe
siege -c 25 -t 1M https://<target>/
# Solliciter une liste d'URL, dans un ordre aléatoire, avec un délai aléatoire entre les requêtes
siege -f urls.txt -c 20 -d 5 -i
# Mode benchmark : pas de délai entre les requêtes, stress maximal
siege -c 100 -r 20 -b https://<target>/api/login
# Requête verbeuse unique pour déboguer les en-têtes/la réponse
siege -g https://<target>/
# Format urls.txt : une URL par ligne, corps POST optionnel
https://target/login POST username=admin&password=test
https://target/search?q=test
Conseils
-i(mode internet) randomise l’ordre des requêtes dans le fichier d’URL, ce qui simule mieux des motifs de trafic réels qu’une relecture séquentielle- Surveiller le compteur “Failed transactions” dans le résumé : un taux d’échec croissant sous charge signale souvent un WAF/rate-limit qui se déclenche, ce qui est un signal utile en soi
~/.siegerccontient des valeurs par défaut persistantes (timeout, user-agent, logging) pour ne pas répéter les flags à chaque exécution
Aide / Page de manuel
SIEGE 4.x
Usage: siege [options]
siege [options] URL
siege -f <file>
Options:
-c, --concurrent=NUM number of simulated concurrent users
-r, --reps=NUM number of times each user repeats the URL(s)
-t, --time=NUMm|NUMh run for a fixed duration instead of reps
-d, --delay=NUM max random delay (seconds) between requests
-f, --file=FILE read URLs from FILE
-i, --internet hit URLs in random order (simulate real traffic)
-b, --benchmark no delay between requests, maximum throughput
-g, --get perform a single GET/HEAD, print headers, exit
-v, --verbose show request results as they happen
-q, --quiet suppress verbose output