Я работал над какой-то проблемой в WebGoat, где мне нужно было провести атаку запроса грубой силы на сервер. Я написал скрипт на bash (используя curl). Однако в Интернете я нашел похожий сценарий, написанный на python, и когда я его запустил, сценарий python смог запустить атаку на гораздо более высокой скорости.
Таким образом, я провел небольшой сравнительный эксперимент,Я буду использовать следующий скрипт, чтобы сделать запрос к этому контейнеру и сравнить производительность с time
.
$ cat test_curl
#!/usr/bin/env bash
for i in {1..1000}; do
curl -s -o /dev/null 'http://localhost:8080/WebGoat/login'
done
$ cat test_wget
#!/usr/bin/env bash
for i in {1..1000}; do
wget -q -O /dev/null 'http://localhost:8080/WebGoat/login'
done
$ cat test_request
#!/usr/bin/env python3
import requests
for i in range(1, 1001):
requests.get('http://localhost:8080/WebGoat/login')
$ time ./test_request
real 0m4.240s
user 0m2.136s
sys 0m0.125s
$ time ./test_wget
real 0m4.623s
user 0m1.752s
sys 0m0.731s
$ time ./test_curl
real 0m17.907s
user 0m7.420s
sys 0m3.692s
В заключение, если яизбегать использования curl
, когда я делаю много запросов? И кажется, что python-requests
выделяется как победитель здесь. Может ли кто-нибудь подтвердить мой вывод? Я что-то упустил?
Кто-нибудь знает огромные различия в производительности в curl
и wget
? Похоже, что подобный эксперимент был проведен между curl
и wget
здесь несколько лет назад. Но есть все еще резкая разница в производительности.