Какой самый быстрый способ отправить два последующих HTTP-запроса? - PullRequest
1 голос
/ 22 марта 2019

Я делаю сценарий «подкачки имени пользователя», который меняет мое имя пользователя с одной учетной записи на другую с минимальной задержкой. Первый запрос POST освобождает имя пользователя из одной учетной записи, а последующий запрос POST захватывает имя пользователя из другой учетной записи.

Если есть какая-либо задержка или неудача, даже на секунду, один из многих ботов (известных как «автоклавы имени пользователя») выхватит у меня имя пользователя. Есть много таких ботов на таких сайтах, как Instagram и Twitter, где редкие имена пользователей считаются ценными и имеют высокую денежную ценность.

Я подумал о нескольких способах оптимизации скорости запросов:

  • Повторно использовать одно и то же TCP-соединение для обоих сеансов
  • (Может быть?) Использовать библиотеку более низкого уровня, такую ​​как сокеты, для лучшей скорости
  • Запустить скрипт на сервере с низкой задержкой рядом с расположением веб-сервера
  • Дождаться обслуживания веб-сервера или чего-то еще, пока боты не сломаются
  • Используйте HTTP через HTTPS, если веб-сайт не требует его для большей скорости

Есть ли какие-нибудь примечательные способы улучшить скорость или у меня большая ее часть снижена? В чем я не уверен, так это в языке. Будет ли язык более низкого уровня, такой как C ++ поверх Python, иметь разницу в производительности для чего-то подобного?

1 Ответ

0 голосов
/ 22 марта 2019

Основные затраты производительности связаны с задержкой в ​​сети и временем, которое фактически требуется серверу для обработки запроса (например, поиск в базе данных ...).Затраты из-за выбора языка программирования или библиотеки в этом контексте в основном не имеют значения.

Основными затратами в сети являются рукопожатие TCP и (с HTTPS) следующее рукопожатие TLS.Они могут быть устранены, если во втором запросе используется то же базовое TCP-соединение, но, конечно, сервер действительно должен это поддерживать.

Время, необходимое серверу для обработки запроса, не контролируется клиентом.Кроме того, могут возникнуть дополнительные проблемы, например, сервер требует от клиента решения капчи, если обнаружена какая-либо автоматизация, или существуют процедуры, которые сделают невозможным быстрое повторное использование имени пользователя для борьбы с неправильным использованием, например, продажей.имена пользователей и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...