Как сбросить все HTTP-запросы с Apache


27

Можно ли сбросить целые HTTP-запросы с помощью Apache? Мне нужно отслеживать все HTTP-заголовки входящих запросов. Как это сделать?

Ответы:


30

Я думаю, что вместо Apache вы можете использовать анализатор пакетов , также известный как анализатор пакетов. Двумя наиболее популярными из них являются, вероятно, TCPDump и Wireshark , которые бесплатны и имеют версии для операционных систем Windows и * nix. Они покажут вам весь трафик, поступающий через интерфейс, а не только то, что видит Apache. Но вы можете использовать фильтры для ограничения указанным портом, например, 80 для http.

tcpdump:
следующая команда, запущенная с сервера, покажет вам все пакеты, предназначенные для порта 80:

sudo tcpdump -s 0 -X 'tcp dst port 80'

Переключатель с большой буквы X выводит полезную нагрузку в шестнадцатеричном и ASCII-формате. Переключатель s с 0 означает получение всего пакета. «tcp dst port 80» означает фильтровать и показывать только пакеты, предназначенные для порта 80, в заголовке tcp.

Wireshark:
для более удобной для пользователя версии, если у вас работает графический интерфейс, рассмотрите wireshark (формально известный как ethereal).


1
Спасибо, Кайл, как мне извлечь информацию заголовка HTTP из выходных данных tcpdump?
Алекс

1
Алекс: Знаете что, Wireshark сделает это намного проще. Вы можете использовать имя файла -r, чтобы сохранить дамп в файл, а затем открыть его с помощью wireshark на рабочем столе.
Кайл Брандт

Да, и отбросьте 'dst', если вы хотите получить ответы.
Кайл Брандт

1
-Aтолько для текста (без шестнадцатеричного дампа):sudo tcpdump -A -s 0 'tcp dst port 80'
Брент Фауст

12

может быть сброс файлов cookie ? в противном случае - посмотрите на mod_dumpio .


1
mod_dumpio звучит круто! Вероятно, более простой способ вывести информацию, если используется SSL (хотя это может сделать и Wirehsark). +1 :-)
Кайл Брандт

8

Базовое прослушивание пакетов легко с ngrep, гибридом tcpdump и grep. В некоторых случаях, если вы хотите увидеть, как веб-браузеры взаимодействуют с веб-серверами, и проверить заголовки HTTP.
В этом примере запустите ngrep на веб-сервере следующим образом:

$ ngrep port 80

Вы также можете отфильтровать запрос http к запросу «GET /» на порт 80 следующим образом:

$ ngrep -q '^GET .* HTTP/1.[01]'

На стороне клиента есть полезный инструмент, который называется Tamper Data. Это расширение Firefox, которое дает вам возможность просматривать, записывать и даже изменять исходящие HTTP-запросы.
Вы можете найти больше информации здесь


7

Вместо использования tcpdump или wireshark используйте tcpflow. Это капля замены tcpdump, но создает файл для каждой стороны каждого соединения, поэтому вам не нужно пытаться декодировать поток самостоятельно.


Спасибо за это. Я использую mod_negotiate, и мой curl () подобрал файлы .bak по сравнению с .php, в то время как браузеры нашли .php. Крепкий орешек.
mckenzm

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.