Отправка HTTP-запросов из пула IP-адресов на основе ротации, чтобы избежать регулирования - PullRequest
0 голосов
/ 13 февраля 2012

Мы хотим поразить сервер несколько раз без удушения. Это основная проблема, с которой люди сталкиваются и должны были обойти эту проблему.

Давным-давно я провел небольшой эксперимент, в котором я назначил несколько IP-адресов своему рабочему столу и отправлял HTTP-запросы, используя сокет (..., ..., ..., ..). Я написал небольшой сервлет, чтобы проверить его, и он работал нормально.

Я хотел знать, есть ли лучший подход для выполнения задачи.

1 Ответ

2 голосов
/ 13 февраля 2012

Согласно вашим комментариям, вы запрашиваете веб-страницу в Интернете несколько раз, вероятно, с высокой скоростью (выше, чем у обычного человека).

Как браузеры, вы должны ограничить себя количествомсоединения открываются одновременно.Первоначально HTTP 1.1 определял 4 таких соединения, но последние версии браузеров используют около 8, несколько окон браузера добавляют еще больше.Но базовое правило все еще там, и некоторые серверные фермы на больших сайтах пытаются защитить себя от атак, используя то, что вы называете регулированием.

Вы можете использовать те же методы, что и браузеры, чтобы сбалансировать частоту запросов:

  1. Ограничьте количество параллельных соединений, которые вы открываете параллельно, и используйте открытое соединение (не закрывая его), чтобы отправить новый запрос после завершения предыдущего.

  2. Более сложный подход заключается в реализации HTTP Pipelining и добавлении его в пункт 1 выше.Конвейерная передача позволяет отправлять несколько запросов по одному соединению, не дожидаясь ответа, но не все сайты поддерживают его (и не все браузеры его используют).

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

Другой вариант - это распределить клиентов по сети с помощьюразные клиенты, которые объединяют / синхронизируют работу через центральный сервер.

...