Сборщик журналов HTTP-запросов

У меня есть простое приложение rails, и оно отправляет http-запросы на сервер, который затем отображает результаты в пользовательском интерфейсе.

Я просто хочу подсчитать количество запросов, которые я отправляю, а также запрос и ответ для каждого http-запроса.

Есть ли какой-нибудь драгоценный камень или утилита для автоматического сбора запросов на разрыв, или мне нужно написать для этого собственный код?

РЕДАКТИРОВАТЬ

Мне нужно получить количество запросов в моем приложении rails, чтобы будущие запросы отправлялись на основе подсчета, предоставленного инструментами. Таким образом, либо инструмент должен быть интегрирован с моим приложением rails, либо ему необходимо предоставить доступ к API, чтобы получить подсчет.

См. также этот аналогичный вопрос , в котором есть ряд рекомендаций.
Уточните, хотите ли вы регистрировать все (т. е. полное содержание ответа, т. е. всю HTML-страницу, JS или двоичные данные для изображений), или вы просто хотите получить количество обращений к разным URL-адресам с помощью Коды состояния HTTP, которые обычно делаются программным обеспечением для анализа статистики веб-сервера.
@MishaBrukman Пока достаточно просто подсчета
Как дела? Получите то, что вам нужно?
@ tjt263 - Не совсем так, но я думаю, что могу попробовать с httpry
У меня нет большого опыта работы с ruby, но я бы подумал, что все, что может .pcapвыводить, должно быть подходящим.

Ответы (4)

Может быть, что-то вроде httpryбудет лучше соответствовать вашей цели.
Дополнительную информацию можно найти по адресу: http://dumpsterventures.com/jason/httpry .
Код размещен на GitHub: https://github.com/jbittel/httpry .

httpry version 0.1.8 — инструмент для ведения журналов HTTP и поиска информации.
Copyright (c) 2005-2014 Джейсон Биттел
Использование: httpry [-dFhpqs] [-b файл] [-f формат] [-i устройство] [-l порог]
              [-m методы] [-n количество] [-o файл] [-P файл] [-r файл]
              [-t секунд] [-u пользователь] ['выражение']

   -b файл записывать HTTP-пакеты в двоичный файл дампа
   -d работать как демон
   -f формат указать строку выходного формата
   -F принудительно очистить вывод
   -h распечатать эту справочную информацию
   -i устройство прослушивает этот интерфейс
   -l threshold указать порог количества запросов в секунду для статистики скорости
   -m методы указывают методы запроса для анализа
   -n count установить количество HTTP-пакетов для анализа
   -o файл записать вывод в файл
   -p отключить беспорядочный режим
   -P файл использовать пользовательское имя файла PID при работе в режиме демона
   -q подавлять некритичный вывод
   -r файл читать пакеты из входного файла
   -s запускать в режиме HTTP-запросов в секунду
   -t секунд указать интервал отображения статистики скорости
   -u пользователь устанавливает владельца процесса
   выражение указывает фильтр захвата в стиле bpf

Это вывод, когда я обновляю эту страницу:

httpпопробуй


Если вы хотите направить вывод в другие программы ( grepнапример), используйте -F.

-F Отключить всю буферизацию вывода.
   Это может быть полезно при передаче вывода httpry в другую программу.
Если вам нравится эта идея; возможно, вам также стоит проверить tcpdump, tshark, winpcapи т. д.

Попробуйте Burp Suite от Portswigger.
https://portswigger.net/burp/download.html

Отрыжка

Просто информация, которая может помочь вам избежать неприятностей: загрузка пакета burp в компании, в которой я работаю, звонит в каждый доступный сигнал тревоги ... Поскольку некоторые антивирусные инструменты считают пакет burp «хакерским инструментом», как прокси, так и клиент побочный антивирус орут как черти.
Предоставляет ли Burp API для подсчета HTTP-запросов для сайта?
@SamuelAlexander Это позволяет вам установить целевую область и фильтр для любого домена или адреса, который вам нравится, и создает нумерованный список, как на изображении. Это помогает?
@ tjt263 Помимо пользовательского интерфейса Burp (показан на изображении), есть ли другой способ получить этот счет? Что-то вроде подсчета путем выполнения http-вызова или кода ruby ​​против Burp.

Я использую скрипач , чтобы добиться этого для своей работы.

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

Для этого также доступно много интересных дополнений , например, вы можете переворачивать изображения, которые приходят в ответ, различать трафик, запросы сканера конфиденциальности, которые устанавливают файлы cookie. Отладка трафика из любой точки мира. Поддерживает все платформы.

введите описание изображения здесь

Предоставляет ли Fiddler API для подсчета HTTP-запросов для сайта?

Если вам не нужно столько функций, которые предлагают burp и fiddler, вы можете выбрать Membrane Soap Monitor . Поскольку это приложение на основе Java, оно работает в Linux, Mac OS и Windows.

Просто загрузите и разархивируйте, предоставленный .exe автоматически найдет вашу среду выполнения Java. Затем создайте простой прокси и оставьте все значения без изменений, кроме тех, где вы должны указать имя целевого сервера:

введите описание изображения здесь

После этого просто укажите, что ваше программное обеспечение обращается к прокси-серверу, как если бы это была обычная конечная точка http (в моем примере я использую curl):

curl http://localhost:2000/foo

Затем Membrane покажет вам обмен с подробностями (включая входящие и исходящие заголовки) и подсчитает количество обменов:

введите описание изображения здесь

Я работал как с Fiddler, так и с Burp Proxy, которые являются отличными инструментами и предлагают функциональные возможности, выходящие далеко за рамки возможностей Membrane. Но если вам нужен простой в настройке прокси, я предлагаю использовать Membrane.

Предоставляют ли Fiddler или Burp API для подсчета HTTP-запросов для сайта? Смотрите мой отредактированный вопрос
@SamuelAlexander В Fiddler вы можете установить фильтр для процесса (например, включить только ваше приложение rails), но я не знаю, как ограничиться определенным сайтом (но вы можете исключить определенный URL-адрес). Мембрана делает это намного проще: определите прокси исключительно для вашего приложения, и тогда вы сможете увидеть n of n Exchanges(см. мой скриншот)
Таким образом, Fiddler позаботится об ограничении HTTP-вызова. Нам не нужно ограничивать количество вызовов в нашем приложении rails. Это то, что ты имеешь в виду? Если это так, это будет полезно, но все же получить подсчет, выполнив команду curl или через код ruby|rails против Fiddler, будет здорово. Это доступно в Fiddler?
После того, как вы отредактировали свой вопрос: я не думаю, что имеет смысл подсчитывать количество вызовов с использованием прокси-сервера, если вам нужно иметь подсчет внутри вашего приложения. В Java я бы написал для этого ServletFilter или Interceptor, вы должны увидеть, доступно ли это в rails.