Auf der Suche nach einem HTTP-Debug-Proxy für Mac, der Fiddler unter Windows ähnelt [closed]


240

In früheren Jobs, als ich auf einem Windows-Computer gearbeitet habe, habe ich Fiddler zum Anzeigen von HTTP-Transaktionen und zum Debuggen verwendet.

Ich möchte speziell die HTTP-Transaktionen für eine Ajax-Site überwachen, an der ich arbeite, um sicherzustellen, dass die Site das tut, was ich erwarte. Das Umschreiben von HTTP (wie von Fiddler bereitgestellt) ist eine nette Sache, aber nicht unbedingt erforderlich.

Kann jemand etwas Ähnliches für die Verwendung auf einem Mac empfehlen?


4
Dies wurde geschlossen, existiert aber immer noch, muss also hinzugefügt werden: Fiddler ist jetzt in Alpha für das Mac OS.
Boomhauer

1
Ich weiß nicht, warum dies geschlossen sein würde? Es hat 113 Upvotes. Es ist nicht so, dass dies eine Frage beim Stapelüberlauf war.
Genxgeek

Lesen Sie die Begründung direkt über diesen Kommentaren - "Fragen, die Empfehlungen zu Produkten, Dienstleistungen oder Lernmaterialien enthalten, sind vom Thema
Doug Harris,

Starten Sie Fiddler auf einem nahe gelegenen Windows-Computer und konfigurieren Sie Ihren MAC so, dass er über Windows-Computer und Voila Proxy-Funktionen ausführt. Alles auf deinem MAC wird unter Windows zu sehen sein :)
Korayem

2
Zu Ihrer Information, für diejenigen, die sich beim Lesen von @boomhauers Kommentar sehr gefreut haben: Fiddler für OSX ist immer noch in Alpha. Nach der letzten Aktualisierung im Juli 2013 ist das Mono-Framework erforderlich (also im Grunde nur ein Wrapper für die Windows-Version, nicht wirklich) "Mac Hinweis: Das WinForms-Framework auf dem Mac ist fast unbrauchbar fehlerhaft. Am besten führen Sie Fiddler in einer virtuellen Linux- oder Windows-Maschine aus und richten Sie die Proxy-Einstellungen des Mac darauf . "
Anthony

Antworten:


130

Verwenden Sie Chrome und navigieren Sie zu chrome: // net-internals /

Es ermöglicht detaillierte Analysen und Dumps.


1
Nett. Hast du eine Idee, wann das zu Chrome hinzugefügt wurde?
Doug Harris

2
Nein Entschuldigung. Früher habe ich mit Fiddler unter Windows gearbeitet, aber als ich auf einen Mac umgestiegen bin, bin ich auf Netz-Interna gestoßen, als ich nach versteckten Chrome-Funktionen gesucht habe.
brains_at_work

5
Dieses Tool scheint "ordentlich" zu sein, aber wie können Sie die gesamte Nutzlast der Anforderung (dh GET-Anforderungsheader?)
anzeigen

AFAIK, dies bietet keine Möglichkeit, die Daten während der Übertragung zu ändern, wie dies Fiddler mit FiddlerScript, AutoResponder und Haltepunkten tut. Gutes Werkzeug, aber für verschiedene Zwecke.
iX3,

33
Dieses Tool scheint nur den Chrome-Verkehr zu erfassen. Gibt es eine Möglichkeit, mit diesem Tool den HTTP-Verkehr von / zu einem bestimmten Prozess zu erfassen?
Morpheus

71

Ich habe Charles Proxy gefunden . Es ist viel näher an der Funktionalität von Fiddler. Es ist nicht kostenlos, aber es kann den Preis wert sein.


Nur neugierig: Hat es hier jemals jemand benutzt?
Arjan

Ich habe es ein oder zwei Stunden lang benutzt, nachdem ich es gefunden hatte. Die Testversion hat einige Nörgler und eine 30-minütige Beschränkung, aber ich denke nicht, dass diese unvernünftig sind. Ich habe nach bestimmten Headern in der HTTP-Antwort gesucht und konnte diese leicht erkennen.
Doug Harris

1
Das Schöne an Charles ist, dass es sowohl für OSX als auch für Windows verfügbar ist. Wenn Sie also häufig hin und her gehen, ist es ein gutes, allgemeines Tool.
Justin Ohms

5
Eine wichtige Funktion, die charles (und Fiddler und vielleicht auch Webscarab) bereitstellen, ist die Fähigkeit, Anforderungen, einschließlich der https-Entschlüsselung, abzufangen und zu ändern.
urban_raccoons

1
Ich verwende Charles zum Entschlüsseln von https-Anfragen für Instagram, Facebook und andere mobile Apps. Zeigen Sie einfach mit dem iPhone Proxy auf Charles und ich kann sehen, wie sie Daten senden und welche Daten sie senden!
Mário Carvalho

35

Ich habe Mitmproxy zum Abfangen von HTTP-Verkehr verwendet. Es ist ein großartiges Tool und Sie können es auch zum Debuggen mobiler Geräte oder jedes Betriebssystems verwenden.


LIEBE DIESES! Übrigens, für alle Script-Kiddies, für den Fall, dass Sie Code in etwas anderem als JS schreiben, das im Browser sitzt, ist dieses Ding DAS Ticket.
Shane

30

Meine Lieblings-Mac-App zum Überwachen des Datenverkehrs ist HTTPScoop . Ich beschreibe dies ebenso wie die Verwendung von tcpdump über die Befehlszeile in diesem Beitrag, den ich letztes Jahr gebloggt habe .


Wenn Sie Wireshark (oder den weniger leistungsfähigen Cocoa Packet Analyzer) kennen: Können Sie HTTPScoop damit vergleichen?
Arjan

1
Cocoa Packet Analyzer ist auch ganz einfach. Ich habe jedoch nie herausgefunden, wie man einen bestimmten Port oder eine bestimmte Server-IP-Adresse filtert und dann sowohl die Anfrage als auch die Antwort anzeigt ... Das ist in Wireshark ganz einfach. (Geben Sie einfach smtpals Anzeigefilter ein, um den gesamten Datenverkehr anzuzeigen, der das SMTP-Protokoll verwendet. Oder tcp.port == 25, um den gesamten Datenverkehr zu Port 25 und dessen Antworten abzurufen. Oder http and ip.addr == xxxum den gesamten HTTP-Datenverkehr von und zu einem Server abzurufen.)
Arjan,

1
httpscoop sah vielversprechend aus, leider scheint es aufgegeben zu sein und ich konnte den lokalen Host-Verkehr am 10.9.2 nicht erfassen. Die letzte Veröffentlichung stammt aus dem Jahr 2009 und die Website wirbt für die kommende Version 2.0, die nicht in Kürze erscheinen wird: /
Jean

1
Ich habe versucht, diese App zu verwenden, es ist schrecklich im Vergleich zu Geiger. Ich möchte den gesamten Datenverkehr und alle Ports erfassen, alle Schnittstellen nicht Port 80 auf localhost. Ich habe versucht, die gewünschten Ports über die Einstellungen hinzuzufügen (ohne Schaufel). Dies hat mir nicht geholfen, da die Dinge, die ich überwachen wollte, sich auf zwei verschiedenen Schnittstellen befanden, z. B. lo / en0
KnuturO

1
Link zum Blog funktioniert nicht :(
Reg

19

Nicht das, wonach Sie gefragt haben, aber in Firefox ist das Live- Add- On für HTTP-Header alles, was ich brauche, um Anforderungen zu bearbeiten und erneut abzuspielen, einschließlich der Änderung der URL und der HTTP-Methode.

Live-HTTP-Header

In Firebug zeigt die Netzwerküberwachung alle Anforderungen und Antworten an. Ebenso deckt in Safari der Bereich Ressourcen des integrierten Webinspektors die meisten meiner Anforderungen ab. (Aktivieren Sie den Web Inspector über die Einstellungen: Menü "Entwickeln" in der Menüleiste anzeigen .) Chrome und Firefox verfügen über ähnliche Tools.

Wenn es komplizierter wird, zünde ich meinen Wireshark- Paketschnüffler an. Im Gegensatz zu Fiddler lässt Wireshark Sie die Daten nicht ändern und unterstützt keine Funktionen wie Auto-Responder, wie es Fiddler anscheinend tut.

Für Wireshark finden Sie unter HTTP (Hyper Text Transfer Protocol) einige allgemeine Informationen zur HTTP-Erfassung und unter HTTP-Paketerfassung zum Debuggen von Apache einige Beispiele für Anzeigefilter . (Möglicherweise möchten Sie den Erfassungsfilter auf " port 80" setzen, um alle Anforderungen an diesen Port und die Antworten von diesem Port anzuzeigen. Oder verwenden Sie den Erfassungsfilter " port 80 and host www.google.com" , um die Anzahl auf einen bestimmten Server zu beschränken .)

# Zeige nur 404: Seite nicht gefunden
http.response.code == 404

# Nur bestimmte HTTP-Methoden anzeigen
http.request.method == "POST" || http.request.method == "PUT"

# Zeige nur Javascript
http.content_type enthält "Javascript"

Beachten Sie, dass Wireshark gzip dekomprimieren oder codierte (komprimierte) Dinge für Sie im laufenden Betrieb entleeren kann. Das erleichtert das Lesen erheblich, da die meisten Webserver die an einen Browser gesendeten Daten komprimieren.

(Was Auto-Responder anbelangt: Der exzellente JS-Bin enthält ein kurzes Video zur Verwendung für das Debuggen von Ajax-Anfragen. Wenn Sie JS-Bin nicht kennen, sehen Sie sich zuerst das Einführungsvideo an.)


+1 für Firebug - Ich liebe ihr Netzwerküberwachungstool
Josh

Ich habe es versucht, aber ich konnte keine neue Anfrage an eine andere URL (in derselben Domain) stellen und konnte nicht herausfinden, wie (von einem GET zu einem POST zum Beispiel).
Purefan

@ Purefan, ohne weitere Details können wir nicht helfen; es funktioniert für mich, siehe den Screenshot, den ich gerade hinzugefügt habe. Möglicherweise haben Sie mozdev.org/bugs/show_bug.cgi?id=25831
Arjan

7

Neben Charles (bereits erwähnt) gefällt mir auch das HttpFox- Add-On für Mozilla Firefox. Sie können es wie Charles auf Mac und Windows verwenden. Es ist leichter als Charles, da es im Browser gespeichert ist und eine schnelle Fehlerbehebung ermöglicht. Hier sind einige Informationen von der HttpFox-Seite:

HttpFox überwacht und analysiert den gesamten eingehenden und ausgehenden HTTP-Verkehr zwischen dem Browser und den Webservern.

Ziel ist es, die von Tools wie HttpWatch oder IEInspector bekannten Funktionen in den Firefox-Browser zu bringen.

Die auf Anfrage verfügbaren Informationen umfassen:

  • Anforderungs- und Antwortheader
  • Gesendete und empfangene Cookies
  • Querystring-Parameter
  • POST-Parameter
  • Reaktionskörper

Und ein Screenshot:

Screenshot des HttpFox-Add-ons für Mozilla Firefox


Dies ist nicht kompatibel mit den neueren Versionen von Firefox (Firedox 57 und Firedex Deveolper Edition 57)
Promather

6

Kein Proxy, aber es hilft beim Debuggen von HTTP:

Starten Sie einfach einen Scan auf der Schnittstelle, auf der der HTTP-Datenverkehr aktiviert sein soll, führen Sie den Datenverkehr aus, beenden Sie den Scan und geben Sie "HTTP" als Filterzeichenfolge ein. Sie können dann alle Pakete der HTTP-Konversation überprüfen. Bei geöffneter Paketdetailansicht können Sie den HTTP-Abschnitt öffnen, der zwischen Paketen geöffnet bleibt.

Es ist ein großartiges Tool, und Sie müssen den Browser-Proxy nicht ändern. Andererseits kann es beim HTTPS-Verkehr nicht helfen, da dieser verschlüsselt ist. (Obwohl es SSL-Verbindungen entschlüsseln kann, die RSA verwenden )


2
Nur ein Update: Wireshark bereitet unter OS X Schmerzen. Es erfordert X11, das nicht mehr in OS X enthalten ist, sodass Sie insgesamt etwa 200 MB Festplattenspeicher benötigen.
Marko Bonaci

2
Wireshark 2.x ist nur ein Update für das @MarkoBonaci-Update und läuft unter OSX ohne X11.
0x7c0

@MarkoBonaci - Sie sollten stattdessen nur mit qt installieren.
Arcseldon

5

Ich bin spät dran, aber ich benutze Paros Proxy . Es ist in Java, also plattformübergreifend. Wenn Sie möchten, dass es als App verpackt wird, finden Sie hier unten eine.



2

Es scheint, dass der kostenlose GlimmerBlocker einen Teil des Tricks leisten kann.

Natürlich kann es alle Arten von Inhalten blockieren und Antworten umwandeln, bevor der Browser sie empfängt. Tatsächlich können jedoch sowohl Anforderungen als auch Antworten geändert werden . Und obwohl es kein echtes Debugging ist, bietet es auch Protokollierung. So könnte es den Grundbedürfnissen entsprechen :

Es gibt 4 Arten von Skripten, die in GlimmerBlocker ausgeführt werden, und einige Objekte sind nur für einige der Skriptarten definiert:

  • Globaler Proxy: Hier werden die globalen Proxy-Einstellungen festgelegt und es kann beispielsweise nach dem Standortnamen oder dem AirPort-Netzwerk gesucht werden.
  • Anforderungsänderung: Dies kann die angeforderte URL ändern, eine Umleitungsantwort an den Browser zurücksenden oder Text / HTML an den Browser zurücksenden.
  • Keyword-Erweiterung. [Nur Safari, AvB]
  • transform: Ändert die vom Webserver empfangene Antwort, bevor sie an Safari zurückgesendet wird [oder an einen Browser, der so eingerichtet ist, dass er den von GlimmerBlocker, AvB, bereitgestellten Proxy verwendet].

(Man kann es auch verwenden, um verschiedene Greasemonkey-Skripte in die empfangene Antwort aufzunehmen, ohne ein Greasemonkey-Add-On zu verwenden, um Flash zu blockieren , ohne ein Add-On zu installieren.)


GlimmerBlocker ist ein interessantes Tool, aber anders als das, was ich suche. Ich habe die ursprüngliche Beschreibung überarbeitet, um die Umschreibebeispiele zu entfernen und zu verdeutlichen, dass ich lediglich den Datenverkehr überwachen und nicht transformieren möchte.
Doug Harris

2

Sie können Fiddler für Mac ganz einfach mithilfe von Parallels gemäß den Anweisungen auf der Website konfigurieren .

Die einzige Einschränkung besteht darin, dass Sie Ihre Netzwerkeinstellungen manuell so konfigurieren müssen, dass sie auf die IP-Adresse der VM verweisen, aber nicht wirklich wichtig sind.


7
Ich würde das nicht "leicht" nennen - es erfordert den Kauf und die Installation eines VM-Servers und eines völlig anderen Betriebssystems.
James Moore

Ich habe 5 Einträge in diesem Tooltip und nur einer von ihnen ist IPv4-Format. Welche soll ich nehmen ...? :)
Alex Sorokoletov

1
Sie können kostenlose Virtualisierungssoftware wie Oracle VirtualBox zusammen mit einer VM von modern.ie verwenden, wenn Sie ein Windows-Betriebssystem ausführen möchten (nach 90 Tagen muss es zurückgesetzt werden) - für jemanden mit den erforderlichen Fähigkeiten kein allzu großer Aufwand zum Ausführen eines erweiterten Web-Debug-Proxys
iX3

Wenn diese Frage offen war, sollte jemand Fiddler für Mac - telerik.com/download/fiddler mit Mono - Framework erwähnen ...
Mars Robertson

Und es funktioniert nicht für mich in macOS
tom10271

1

jMeter könnte auch hilfreich sein; Es wurde für das Testen der Auslastungsleistung auf Webservern entwickelt, kann aber dennoch das tun, was Sie benötigen. jMeter ist in Java geschrieben, sodass Sie eine .jar-Datei herunterladen können, die auf Mac, Windows oder Linux ausgeführt wird.



1

Wenn Sie mit App-Verkehr oder API-Integrationen von Drittanbietern zu tun haben, die über das öffentliche Internet übertragen werden, sollten Sie Runscope ausprobieren (von dem ich bei vollständiger Offenlegung Mitbegründer bin). Es erfasst HTTP-Anfragen an eine beliebige URL, bietet eine schöne Stream-Ansicht zum Debuggen und erleichtert das Teilen einzelner Anfragen mit anderen.


0

Sie können auch APIKitchen ausprobieren . Es hilft Ihnen beim Debuggen und Testen von HTTP-APIs und allen Anforderungen im Allgemeinen. Es gibt auch eine Offline-Version zum Testen in Ihren internen Netzwerken. Keine Installation notwendig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.