Ищите прокси-сервер для отладки HTTP для Mac, похожий на Fiddler в Windows [закрыто]

240

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

Я специально отслеживаю транзакции HTTP для сайта ajax, над которым я работаю, чтобы убедиться, что сайт делает то, что я ожидаю. Переписывание HTTP (как предусмотрено Fiddler) желательно, но не обязательно.

Кто-нибудь может порекомендовать что-то подобное для использования на Mac?

Даг Харрис
источник
4
Это было закрыто, но все еще существует, поэтому необходимо добавить: Fiddler теперь в альфа для Mac OS.
Boomhauer
1
я не знаю, почему это будет закрыто? у него 113 голосов. это не похоже на переполнение стека.
genxgeek
Прочитайте обоснование непосредственно над этими комментариями: «Вопросы, касающиеся рекомендаций по продукту, услуге или учебному материалу, не относятся к теме»
Даг Харрис,
Запустите Fiddler на соседнем компьютере с Windows и настройте свой MAC для прокси на компьютере с Windows и вуаля! все на вашем MAC будет видно на Windows :)
Korayem
2
К вашему сведению, для тех, кто был действительно взволнован, читая комментарий @boomhauer: Fiddler для OSX все еще находится в Alpha, последний раз его коснулись в июле 2013 года, для этого требуется среда Mono (так что это просто оболочка для версии Windows, а не фактически переработан для Какао), и в выпуске есть примечание: «Примечание для Mac: платформа WinForms на Mac почти бесполезно глючит. Лучше всего запустить Fiddler внутри виртуальной машины Linux или Windows и указать настройки прокси Mac на этом «.
Энтони

Ответы:

130

Используйте Chrome и перейдите к chrome: // net-internals /

Это позволяет детальный анализ и дампы.

brains_at_work
источник
1
Приятно. Есть идеи, когда это было добавлено в Chrome?
Даг Харрис
2
Нет извини. Раньше я работал с Fiddler в Windows, но переходя на Mac, я наткнулся на внутренние сети, ища скрытые функции Chrome.
brains_at_work
5
этот инструмент кажется «аккуратным», но как вы можете увидеть всю полезную нагрузку запроса (т.е. GET-заголовки запроса?)
genxgeek
AFAIK, это не предлагает способ изменения данных в пути, как это делает Fiddler с FiddlerScript, AutoResponder и точками останова. Хороший инструмент, но для разных целей.
iX3
33
Этот инструмент, кажется, захватывает только хром-трафик. Есть ли способ использовать этот инструмент для захвата http трафика от / к конкретному процессу?
Морфеус
71

Я нашел Чарльза Прокси . Это намного ближе к функциональности Fiddler. Это не бесплатно, но это может стоить цену.

Даг Харрис
источник
Просто любопытно: кто-нибудь здесь когда-либо использовал это?
Арьян
Я использовал это в течение часа или двух после того, как я нашел это. Пробная версия имеет несколько раздражающих экранов и 30-минутное ограничение, но я не думаю, что это неразумно. Я искал конкретные заголовки в HTTP-ответе и смог легко их увидеть.
Даг Харрис
1
Хорошая вещь о Чарльзе в том, что он доступен как для OSX, так и для Windows, так что, если вы будете часто возвращаться назад, это будет хороший инструмент
Джастин Омс
5
Важная функциональность, которую предоставляют charles (и fiddler, и, возможно, webscarab), - это возможность перехватывать и изменять запросы, включая расшифровку https.
urban_raccoons
1
Я использую Чарльз для расшифровки запросов https, Instagram, Facebook и других мобильных приложений. Просто укажите iPhone прокси Чарльзу, и я смогу увидеть, как они отправляют данные и какие данные они отправляют!
Марио Карвалью
35

Я использовал mitmproxy для перехвата HTTP-трафика. Это отличный инструмент, и вы можете использовать его для отладки мобильных устройств, а также любой другой операционной системы.

eikes
источник
ЛЮБИТЕ ЭТО! Кстати, для всех детишек сценария, если вы пишете код в чем-то отличном от JS, сидящем в браузере, это БИЛЕТ.
Шейн
30

Мое любимое Mac-приложение для мониторинга трафика - HTTPScoop , я подробно описал это, а также использовал tcpdump из командной строки в этом посте, который я опубликовал в прошлом году .

Тед Нейлид
источник
Если вы знаете Wireshark (или менее мощный анализатор пакетов какао): можете ли вы сравнить HTTPScoop с этим?
Арьян
1
Анализатор пакетов какао тоже довольно прост. Однако я так и не понял, как отфильтровать какой-либо конкретный порт или IP-адрес сервера, а затем увидеть и запрос, и ответ ... Это легко сделать в Wireshark. (Просто введите в smtpкачестве фильтра отображения, чтобы увидеть весь трафик, который использует протокол SMTP. Или tcp.port == 25чтобы получить весь трафик на порт 25 и его ответы. Или http and ip.addr == xxxчтобы получить весь трафик HTTP на некоторый сервер и с него.)
Arjan
1
httpscoop выглядел многообещающе, к сожалению, он, кажется, заброшен, и я не смог перехватить трафик localhost на 10.9.2. Последний релиз датируется 2009 годом, и на сайте публикуется анонс предстоящей версии 2.0, которая, похоже, не выходит: /
Jean
1
Я пытался использовать это приложение, оно ужасно по сравнению с скрипачом. Я хочу захватить весь трафик и все порты, все интерфейсы, а не порт 80 на localhost. Я попытался добавить порты, которые я хотел через предпочтения (без совка). Это не помогло мне, поскольку вещи, которые я хотел контролировать, были на двух разных интерфейсах, например, lo / en0
KnuturO
1
Ссылка на блог не работает :(
Reg
19

Не то, что вы спросили, но в Firefox надстройка Live HTTP Headers - это все, что мне нужно, если я хочу редактировать и повторно воспроизводить запросы, включая изменение URL-адреса и метода HTTP.

Живые HTTP-заголовки

В Firebug Сетевой мониторинг показывает все запросы и ответы. Аналогично, в Safari панель «Ресурсы» встроенного веб-инспектора также покрывает большинство моих потребностей. (Включите веб-инспектор через настройки: Показать меню «Разработка» в строке меню .) В Chrome и Firefox есть аналогичные инструменты.

Когда все усложняется, я запускаю анализатор пакетов Wireshark . Однако, в отличие от Fiddler, Wireshark не позволяет вам изменять данные и не поддерживает такие функции, как автоответчики, как, очевидно, делает Fiddler.

Для Wireshark см. Протокол передачи гипертекста (HTTP) для получения некоторой общей информации о захвате HTTP и Захват пакетов HTTP для отладки Apache , для некоторых примеров фильтров отображения . (Возможно, вы захотите установить фильтр захвата на « port 80», чтобы показать все запросы к этому порту и ответы от этого порта. Или, чтобы ограничить каким-либо сервером, используйте фильтр захвата « port 80 and host www.google.com».) Например:

# Показать только 404: страница не найдена
http.response.code == 404

# Показывать только определенные методы HTTP
http.request.method == "POST" || http.request.method == "PUT"

# Показывать только JavaScript
http.content_type содержит «javascript»

Обратите внимание, что Wireshark может распаковать gzip или сдуть закодированные (сжатые) вещи на лету для вас. Это значительно облегчает чтение, поскольку большинство веб-серверов сжимают данные, которые они отправляют в браузер.

(Что касается автоответчиков: отличный JS Bin имеет короткое видео о том, как использовать его для отладки Ajax-запросов. Если вы не знаете JS Bin, то сначала просмотрите вводное видео.)

Arjan
источник
+1 для Firebug - я люблю их инструмент мониторинга сети
Джош
Я попробовал это, но я не мог сделать новый запрос к другому URL (в том же домене) и не мог найти как (от GET до POST например).
Purefan
@Purefan, без более подробной информации мы не можем помочь; это работает для меня, смотрите скриншот, который я только что добавил. Возможно, вы столкнулись с mozdev.org/bugs/show_bug.cgi?id=25831
Арджан
7

В дополнение к Чарльзу (уже упомянутому), мне также нравится дополнение HttpFox для Mozilla Firefox. Как и Чарльз, вы можете использовать его как на Mac, так и на Windows. Это легче, чем Чарльз, потому что он живет в браузере, что полезно для быстрого поиска неисправностей. Вот некоторая информация со страницы HttpFox:

HttpFox отслеживает и анализирует весь входящий и исходящий HTTP-трафик между браузером и веб-серверами.

Он направлен на то, чтобы предоставить браузеру Firefox функциональность, известную из таких инструментов, как HttpWatch или IEInspector.

Информация, доступная по запросу, включает в себя:

  • Заголовки запросов и ответов
  • Отправленные и полученные куки
  • Параметры строки запроса
  • Параметры POST
  • Тело ответа

И скриншот:

Снимок экрана дополнения HttpFox для Mozilla Firefox

Крис В. Ри
источник
Это несовместимо с более новыми версиями Firefox (Firedox 57 и Firedex Deveolper Edition 57)
Promather
6

Не прокси, но это помогает в отладке HTTP:

Просто запустите сканирование на интерфейсе, на котором вы собираетесь использовать HTTP-трафик, выполните трафик, а затем остановите сканирование и введите «HTTP» в качестве строки фильтра. После этого вы сможете проверить все пакеты HTTP-разговора. Открыв представление Packet Detail, вы можете открыть раздел HTTP, и он останется открытым между пакетами.

Это отличный инструмент, и вам не нужно менять прокси браузера. С другой стороны, он не может помочь с трафиком HTTPS, поскольку он зашифрован. (Хотя он может расшифровать соединения SSL, которые используют RSA )

w00t
источник
2
Просто обновление: Wireshark - это проблема для OS X. Для него требуется X11, который больше не входит в OS X, так что в итоге вы используете около 200 МБ диска вместе.
Марко Боначи
2
Просто обновление для @MarkoBonaci, Wireshark 2.x теперь отлично работает на OSX, избавив от необходимости X11.
0x7c0
@MarkoBonaci - вы должны просто установить с помощью qt.
arcseldon
5

Я опоздал, но - я использую Paros Proxy . Это на Java, так что кроссплатформенный. Хотя, если вы предпочитаете, чтобы оно было упаковано в виде приложения, оно есть здесь внизу.

Абхинав Гупта
источник
2

Кажется, что бесплатный GlimmerBlocker может сделать часть уловки.

Конечно, он может блокировать все виды контента и преобразовывать ответы до того, как браузер получит их. Но на самом деле это может изменить как запросы, так и ответы . И хотя это не настоящая отладка, она также предлагает логирование. Таким образом, это может удовлетворить основные потребности :

Внутри GlimmerBlocker выполняется 4 типа сценариев, и некоторые объекты определены только для некоторых типов сценариев:

  • глобальный прокси: устанавливает глобальные настройки прокси и может проверять, например, имя местоположения, сеть AirPort.
  • Запрос на изменение: это может изменить запрошенный URL-адрес, отослать ответ перенаправления в браузер или отправить текст / html обратно в браузер.
  • расширение ключевых слов. [Только для Safari, AvB]
  • transform: изменить ответ, полученный веб-сервером, прежде чем он будет отправлен обратно в Safari [или любой браузер, настроенный на использование прокси-сервера, предоставленного GlimmerBlocker, AvB].

(Можно также использовать его для включения различных скриптов Greasemonkey в полученный ответ, без использования дополнения Greasemonkey, например, для блокировки Flash без установки какого-либо дополнения.)

Арджан
источник
GlimmerBlocker - интересный инструмент, но отличный от того, что я ищу. Я отредактировал оригинальное описание, чтобы удалить примеры переписывания и уточнить, что я просто хочу отслеживать трафик, а не преобразовывать его.
Даг Харрис
2

Вы можете легко настроить Fiddler для Mac, используя Parallels, следуя инструкциям на их сайте.

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

aleemb
источник
7
Я бы не назвал это «легко» - это требует покупки и установки сервера VM и совершенно другой операционной системы.
Джеймс Мур
У меня есть 5 записей в этой подсказке, и только одна из них имеет формат IPv4. Какой я должен выбрать? :)
Алексей Сороколетов
1
Вы можете использовать бесплатное программное обеспечение для виртуализации, такое как Oracle VirtualBox, вместе с виртуальной машиной от modern.ie, если вы хотите запустить ОС Windows (через 90 дней ее необходимо перезагрузить) - не слишком дорого для того, кто обладает необходимыми навыками запустить расширенный прокси-сервер для отладки
iX3
Если этот вопрос был открытым - кто-то должен упомянуть Fiddler для Mac - telerik.com/download/fiddler, использующий фреймворк Mono ...
Марс Робертсон
И это не работает для меня в macOS
Tom10271
1

jMeter также может быть полезным; Он предназначен для тестирования производительности нагрузки на веб-серверах, но он все еще может делать то, что вам нужно. jMeter написан на Java, поэтому вы можете скачать файл .jar, который будет работать на Mac, Windows или Linux.

Эви
источник
1

Анализатор пакетов какао очень полезен.

actuosus
источник
4
Чем это полезно? Версия обрывов отмечает, что это было бы чрезвычайно полезно
Путник Гик
Анализатор пакетов какао смог успешно перехватить HTTP-трафик, но он не выполняет восстановление запроса / ответа :(
Жан
1

Если вы имеете дело с трафиком приложений или сторонними API-интеграциями, которые проходят через общедоступный Интернет, вам следует попробовать Runscope (из которых, полное раскрытие, я являюсь соучредителем). Он захватывает HTTP-запросы на любой URL, дает вам хороший вид потока для отладки и позволяет легко делиться отдельными запросами с другими.

Джон Шиэн
источник
0

Вы также можете попробовать APIKitchen . Это поможет вам в отладке и тестировании HTTP API и любых запросов в целом. Он также имеет автономную версию для тестирования во внутренних сетях. Нет необходимости установки.

kontinuity
источник