Wireshark vs Firebug vs Fiddler - Vor- und Nachteile? [geschlossen]


89

Kürzlich bin ich auf ein Problem gestoßen, bei dem eine CGI-Anwendung nicht reagiert. Das Symptom ist, dass Firefox Folgendes anzeigt:

Daten von localhost übertragen ...

Aber die Sache ist, dass ich keinen Datenverkehr vom Firebug-Net-Panel sehen kann und der Browser für immer auf derselben Bühne bleibt.

Ich denke über die Möglichkeiten zum Debuggen dieser Anwendung nach, kann jedoch den Quellcode oder eine der kompilierten Java / C ++ - Komponenten nicht sehen. Daher halte ich eine Diagnose auf HTTP-Netzwerkebene für einen guten Anfang.

Ich habe wenig Erfahrung mit Fiddler und Wireshark. Ich frage mich nur, ob sie auf HTTP-Netzwerkebene bessere Rückmeldungen / Statistiken erhalten. Ich habe gehört, dass Wireshark fortgeschritten ist, aber möglicherweise ein großes Verkehrsaufkommen verursachen könnte, sodass Systemadministratoren es nicht sehr mögen. Zu diesem Zeitpunkt denke ich, dass Firebug mir nicht wirklich genug Informationen zeigt.

Ich muss Informationen sammeln, damit ich sie als Beweis an den Kunden weiterleiten kann.


3
Ich würde Charles nicht empfehlen, da nur ein Entwickler daran arbeitet. Was ist, wenn er nicht mehr an der App arbeitet oder von einem Bus angefahren wird? Außerdem scheint er nicht auf Supportanfragen zu antworten. Ich würde meine 50 Dollar woanders ausgeben. Was Fiddler betrifft , ist die Unterstützung etwas besser, aber sie können sich Zeit nehmen, da es sich um ein kostenloses Tool handelt. Was bleibt mir übrig? Wahrscheinlich Wireshark oder Mitm Proxy.
MasterJoe

1
@ testerjoe2 mitm proxy ist langsam wie f * ck und nicht so gut wie fiddler.
Baburao

Antworten:


79

Wireshark, Firebug und Fiddler machen alle ähnliche Dinge - erfassen den Netzwerkverkehr.

  • Wireshark erfasst jede Art von Netzwerkpaket. Es kann Paketdetails unterhalb von TCP / IP erfassen (HTTP befindet sich oben). Es hat Filter, um das aufgenommene Rauschen zu reduzieren.

  • Firebug verfolgt jede Anfrage der Browserseite und erfasst die zugehörigen Header und die Zeit, die für jede Phase der Anfrage benötigt wird ( DNS, Empfangen, Senden, ... ).

  • Fiddler arbeitet als HTTP / HTTPS-Proxy. Es erfasst jede HTTP-Anforderung, die der Computer stellt, und zeichnet alles auf, was damit verbunden ist. Es ermöglicht Dinge wie das Konvertieren von Post-Variablen in ein Tabellenformular und das Bearbeiten / Wiedergeben von Anforderungen. Standardmäßig wird kein lokaler Host-Verkehr im Internet Explorer erfasst. Informationen zur Problemumgehung finden Sie in den häufig gestellten Fragen (FAQ).


38

Der Vorteil von WireShark besteht darin, dass möglicherweise Fehler in Ebenen unterhalb des HTTP-Protokolls angezeigt werden. Fiddler zeigt Ihnen Fehler im HTTP-Protokoll.

Wenn Sie der Meinung sind, dass das Problem irgendwo in der vom Browser ausgegebenen HTTP-Anforderung liegt, oder wenn Sie nur nach weiteren Informationen suchen, mit denen der Server antwortet oder wie lange die Antwort dauert, sollte Fiddler dies tun.

Wenn Sie den Verdacht haben, dass das von Ihrem Browser und dem Server verwendete TCP / IP-Protokoll (oder in anderen darunter liegenden Schichten) nicht stimmt, wählen Sie WireShark.


2
Wireshark kann in der Tat Proxy- und Nat-Server-Probleme aufdecken. Es kann sowohl auf dem Client, von dem aus Sie eine Verbindung herstellen, als auch auf dem Server verwendet werden.
Glenner003

33

Keine der oben genannten, wenn Sie auf einem Mac sind. Verwenden Sie Charles Proxy . Es ist der beste Netzwerk- / Anforderungsinformationssammler, den ich je gesehen habe. Sie können alle ausgehenden Anforderungen anzeigen und bearbeiten und die Antworten dieser Anforderungen je nach Art der Antwort in verschiedenen Formen anzeigen. Eine Lizenz kostet 50 Dollar, aber Sie können die Testversion herunterladen und sehen, was Sie denken.

Wenn Sie unter Windows arbeiten, würde ich einfach bei Fiddler bleiben.


15
Wäre es Ihnen möglich, herauszufinden, wie sich Charles von etwas wie Fiddler unterscheidet? Was Sie oben erwähnt haben, scheint ein Geiger zu sein. Ich benutze derzeit Fiddler, würde mich aber freuen, etwas Besseres zu verwenden, wenn ich etwas mehr daraus mache.
Jagmag

27
Charles und Fiddler sind sich architektonisch ziemlich ähnlich. Charles läuft auf einem Mac; Fiddler wird nicht. Charles ist in Java geschrieben und kostet Geld. Fiddler ist in C # geschrieben, kostenlos und in .NET leicht erweiterbar.
EricLaw

7
Es funktioniert tatsächlich unter Windows, Mac OSX und Linux
Casebash

10
Warum ist es besser als Wireshark?
Goles

3
Ich beantworte fast jede Frage in Fiddlers Google Group innerhalb eines Tages. Aber dies ist nicht der richtige Ort, um darüber zu plaudern.
EricLaw

15

Fiddler ist jedes Mal der Gewinner im Vergleich zu Charles.

Die Funktion "Regeln anpassen" von Fiddler ist in keinem http-Debugger einzigartig. Die Fähigkeit, Code zu schreiben, um http-Anfragen und -Antworten im laufenden Betrieb zu bearbeiten, ist für mich und meine Arbeit in der Webentwicklung von unschätzbarem Wert.

Es gibt so viele Funktionen für Geiger, die Charles einfach nicht hat und wahrscheinlich nie haben wird. Fiddler ist Lichtjahre voraus.


1
Nur dass Geiger nichts nützt, wenn Sie nicht unter Windows arbeiten. Sie können auch einen Proxy dazwischen setzen, dann können Sie dies selbst tun (in C #). Zum Beispiel mentalis.org/soft/projects/proxy . Kein Geiger erforderlich. Ich habe zu Hause kein Windows-System mehr - nur ARM-basierte Linuces. Und darüber freue ich mich sehr.
Stefan Steiger

Sie haben viele Funktionen von Fiddler erwähnt, die Charles nicht hat. Was sind diese Funktionen?
MasterJoe

4

Wenn Sie eine Anwendung entwickeln, die Daten mit AMF überträgt (was in einem bestimmten Satz von GIS-Web-APIs, die ich regelmäßig verwende, ziemlich häufig vorkommt ), bietet Fiddler derzeit keinen AMF-Decoder an, mit dem Sie die Binärdaten auf einfache Weise anzeigen können. lesbares Format. Charles bietet diese Funktionalität.


4

Ich verwende sowohl Charles Proxy als auch Fiddler für mein Debugging auf HTTP / HTTPS-Ebene.

Vorteile von Charles Proxy:

  1. Behandelt HTTPS besser (Sie erhalten ein Charles-Zertifikat, das Sie in die Liste "Vertrauenswürdige Behörden" aufnehmen würden)
  2. Verfügt über weitere Funktionen wie Laden / Speichern einer Sitzung (insbesondere beim Debuggen mehrerer Seiten), Spiegeln einer Website (nützlich beim Zwischenspeichern von Assets und damit beim schnelleren Debuggen) usw.
  3. Wie von jburgess erwähnt, behandelt AMF.
  4. Zeigt JSON, XML und andere Arten von Antworten in einer Baumstruktur an, um das Lesen zu erleichtern. Zeigt Bilder in Bildantworten anstelle von Binärdaten an.

Nachteile von Charles Proxy:

  1. Kosten :-)

9
Fiddler bietet ein einfacheres HTTPS-Vertrauen als Charles, bietet eine umfassendere Auswahl an Speichern / Laden und zeigt JSON / XML und andere Formate mithilfe einer Baumstruktur an. Es ist Freeware und es gibt AMF-Inspektoren, obwohl ich sie nicht verwendet habe.
EricLaw

1
@EricLaw: Ja, aber Ihre "Freeware" (vorbehaltlich amerikanischer Exportbeschränkungen - auch bekannt als unsichere Kryptografie) läuft nicht unter Linux (mein ARM-Prozessor Chromebook Linux mit Debian).
Stefan Steiger

3

Beachten Sie zur Ergänzung der Liste auch http://mitmproxy.org/


Was würde diese Option in Betracht ziehen?

1
@ JonofAllTrades Dies wird über die Befehlszeile ausgeführt. Jede Alternative bietet eine andere Implementierung, sodass die Vielfalt in diesem Fall einen Zweck erfüllt.
Maxim Veksler

Maxim - Mitm ist ein befehlszeilenbasiertes Tool. Das Fehlen einer grafischen Benutzeroberfläche ist ein Problem für Benutzer wie mich. Können Sie uns sagen, wann Sie das Kommandozeilen-Tool und wann die GUI verwenden sollen?
MasterJoe

Wenn Sie SSHing auf einem Server durchführen und einen Proxy benötigen, ist Mitmproxy möglicherweise ein Lebensretter (es sei denn, Sie sind bereit, eine separate Umgebung mit einer GUI zum Proxy zu haben)
Arithma

Es gibt eine Benutzeroberfläche für Mitmproxy, docs.mitmproxy.org/stable/tools-mitmweb
yeradis
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.