Сравнительный анализ curl против библиотеки wget и python-запроса - PullRequest
0 голосов
/ 28 октября 2019

Я работал над какой-то проблемой в 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 здесь несколько лет назад. Но есть все еще резкая разница в производительности.

...