Eine der wichtigsten Fähigkeiten eines Entwicklers und Systemadministrators ist das Debuggen von Anwendungen, APIs oder Diensten, und die Kenntnis der richtigen Tools ist ein Lebensretter.

Was ist Debugging?

Wenn Sie Krimis sehen, dann wird Ihnen die Idee des Debugging nicht fremd sein. Debugging ist ein Prozess, der eine Menge Taktiken beinhaltet. Es handelt sich um das systematische Auffinden und Beheben von Problemen und Fehlern in einem Programm.

Außerdem werden beim Debugging alle Probleme beseitigt, die den korrekten Betrieb einer Software oder, in diesem Fall, einer Webanwendung verhindern können. Bei der Fehlersuche in Ihrer API oder Webanwendung wird in erster Linie versucht, das Problem zu reproduzieren.

Daraus ergibt sich die Notwendigkeit, eine API-Anfrage zu senden. Und genau hier liegt das Problem. Die meisten Browser hindern Sie daran, den Origin-Header und sogar die Beschränkungen für die URL-Größe zu ändern.

Mit anderen Worten: Um das Problem zu reproduzieren, müssen Sie möglicherweise einige HTTP-Manipulationen vornehmen. Und dazu benötigen Sie einige leistungsstarke Debugging-Tools.

Dazu gehören alle Komponenten oder Taktiken des Debugging-Prozesses;

  • Interaktive Fehlersuche
  • Analyse des Kontrollflusses
  • Unit-Tests
  • Integrationstests
  • Logfile-Analyse
  • Überwachung
  • Speicher-Dumps
  • Profiling

Es ist interessant zu wissen, dass einige HTTP-Clients, d.h. Webbrowser, über eingebaute Webentwickler-Tools verfügen. Diese Tools können zum Debuggen von APIs verwendet werden. Daher ist es nicht notwendig, ein eigenes Debugging-Tool zu schreiben.

Was ist ein HTTP-Client?

Nehmen wir an, Sie möchten ein System entwickeln, das das HTTP-Protokoll für die verteilte Kommunikation nutzt oder HTTP-fähig ist, wie z.B. eine Webanwendung. Dann sollten Sie sich die HTTP-Client-Komponente ansehen.

HTTP, das HyperText Transfer Protocol, ist der Grund dafür, dass Sie im Web kommunizieren oder Daten übertragen können, jedes Mal, wenn Sie eine URL eingeben. Es ist ein Anwendungsprotokoll, das das Surfen im Internet möglich macht.

Der HTTP-Client ist ein System, das Anfragen im HTTP-Textformat an einen Server sendet und im Gegenzug eine Antwort vom selben Server erhält.

Es ist wichtig, die Unterschiede zwischen einem HTTP-Client und dem HTTP-Server zu kennen.

Unterschiede zwischen HTTP-Client und Server

Während der HTTP-Client häufig ein Webbrowser oder ein Dienstprogramm ist, fungieren HTTP-Server als Proxys für Anwendungsserver.

Einfacher ausgedrückt: Ihre Smartphones, Fernsehgeräte, Playstation, wirklich jedes Gerät, das eine Verbindung zum Internet herstellen kann, verwendet wahrscheinlich einen HTTP-Client.

In ähnlicher Weise ist der HTTP-Server der Netzwerkcomputer, mit dem sich der HTTP-Client verbindet. Die Beziehung zwischen den beiden ist eher eine Konversationsbeziehung. Der HTTP-Client sendet eine Anfrage und der HTTP-Server antwortet darauf.

Beispiele für HTTP-Anfragen

AnfragenErgebnisse
GETFordert die gesamte Ressource an
HEADFordert die Ressource ohne den Textkörper an
POSTFügt einer bestehenden Webressource Inhalte hinzu
PUTÄndert eine bestehende Webressource
DELETEEntfernt eine angegebene Ressource
TRACEZeigt die Änderungen an einer Webressource an
OPTIONSZeigt die verfügbaren HTTP-Methoden für die URL an
CONNECTSetzt die Anfrageverbindung in einen transparenten TCP/IP-Tunnel um
PATCHÄndert eine Web-Ressource teilweise

Die Fehlersuche im Web war noch nie so einfach. Mit diesen Tools können Sie sich endlich entspannen, während Sie das tun, was Ihnen Spaß macht.

HTTPie

Das ultimative Ziel von HTTPie ist es, die CLI-Interaktion mit Webdiensten benutzerfreundlich zu gestalten. Dieses Tool bietet einen HTTP-Befehl zum Senden von Anfragen, und das alles mit einer natürlichen Syntax.

HTTPie kann zum Debuggen, Testen und zur Verbindung mit HTTP-Servern verwendet werden. Es unterstützt HTTP, HTTPS und Proxys.

Höhepunkte

  • Eingebautes JSON-Unterstützungssystem
  • Kann unter Windows, macOS und Linux installiert werden
  • Benutzerdefinierte HTTP-Header und Methode
  • Formulare einreichen
  • Offline-Modus
  • Basic- und Digest-Authentifizierung
  • Intuitive Syntax

Sie möchten HTTPie nicht lokal installieren?

Kein Problem, jetzt können Sie es auch online ausführen.

Fiddler

Fiddler ist ein plattformübergreifender Web-Debugging-Proxy. Er hilft Ihnen dabei, Websitzungen zu manipulieren, den HTTPS-Datenverkehr zu untersuchen und den Datenverkehr zwischen Ihrem Computer und dem Internet zu überwachen.

YouTube video

Sie können Fiddler auf Windows, macOS und Linux installieren. Es ist wahrscheinlich das beliebteste Tool zum Debuggen von Datenverkehr.

RESTer

RESTer ist als Erweiterung für Google Chrome und Firefox verfügbar.

Highlights

  • Autorisierungs-Header mit Basic- oder Auth2-Authentifizierung
  • Anzeige des Anfrageverlaufs
  • Ausführen von Anfragen mit beliebigen Methoden, URLs, Body und benutzerdefinierten Headern
  • Testen und Debuggen von APIs

Paw

Paw ist ein voll funktionsfähiger HTTP-Client, mit dem Sie alle Arten von HTTP-Anfragen senden können. Mit Paw können Sie Ihre APIs testen und auch neue erforschen.

Paw wurde ausschließlich für macOS entwickelt und verfügt über einfach zu bedienende Funktionen. Sie können Swagger, RAML usw. importieren und generieren und es unterstützt JSON-Schemata.

Highlights

  • Unterstützt mehrere Authentifizierungen wie Basic, OAuth, Hawk, Digest
  • Dynamische Werte
  • Umgebungen
  • Erweitern Sie durch Java-Script-basierte Erweiterungen
  • Cookies und Sitzungsmanipulation

Requester

Requester ist ein robuster Client, der die Funktionen von HTTPie, Postman und Paw kombiniert. Er funktioniert nur mit dem Sublime Text Editor.

YouTube video

Höhepunkte

  • Unterstützt JSON Schemer
  • Anfragesammlungen und Historie
  • Farbige Ausgabe mit Syntaxhervorhebung
  • Moderne UX
  • Cookies, benutzerdefinierte Kopfzeilen, Anfragekörper und Abfrageparameter lassen sich leicht einstellen.
  • GraphQL-Unterstützung

Postman

Arbeiten Sie ständig an APIs?

Sie werden sich in Postman verlieben.

Postman ist zweifellos einer der beliebtesten HTTP-Clients, die zum Debuggen von Webanwendungen verwendet werden. Er ermöglicht eine schnellere und einfachere API-Entwicklung.

Höhepunkte

  • Ein leistungsstarkes GUI mit einer benutzerfreundlichen Oberfläche
  • Historie der Anfragen
  • Automatisierte Tests mit Collection Runner
  • Flexible API-Überwachung
  • Unterstützt REST, GraphQL, SOAP
  • Unterstützung mehrerer Payloads, einschließlich JSON und HTML

cURL

cURL ist ein Befehlszeilentool, das zum Senden von Daten unter Verwendung der URL-Syntax verwendet wird.

Das Gute daran ist, dass cURL auf den meisten UNIX-Betriebssystemen standardmäßig installiert ist. Es unterstützt viele Protokolle, darunter FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS und SCP.

Charles Proxy

Wie der Name schon sagt, handelt es sich bei Charles Proxy um einen HTTP- und Reverse-Proxy. Er funktioniert, indem er den lokalen Datenverkehr durch ihn hindurchleitet.

Sie können Charles für SSL-Proxying, Bandbreitendrosselung, AJAX-Debugging, Haltepunkte und mehr verwenden.

Whistle

Whistle ist ein NodeJS-basiertes, plattformübergreifendes Debugging-Tool zum Erfassen und Manipulieren von HTTP-, HTTPS-, WebSocket- und TCP-Datenverkehr.

Zunächst müssen Sie NodeJS und dann Whistle mit npm installieren.

npm install -g whistle

Sie können die Funktionen jederzeit mit dem Plugin erweitern, wenn die Standardfunktionen Ihren Anforderungen nicht genügen.

mitmproxy

mitmproxy ist ein unter Sicherheitsforschern beliebter Open-Source-HTTPS-Proxy. Verwenden Sie ihn als CLI, Web oder Python-API.

Die Weboberfläche bietet Ihnen das Aussehen und die Bedienung der Chrome-Entwicklerwerkzeuge. Es unterstützt auch HTTP/2.

Proxyman

Ähnlich wie die oben erwähnte Pfote ist Proxyman eine erstklassige native macOS Web-Debugging-Proxy-Anwendung.

Es fungiert als Man-in-the-Middle für den Webverkehr und bietet viele Funktionen, darunter die folgenden.

  • SSL-Proxy
  • Wiederholung von Anfragen
  • Protobuf
  • ReWrite Skripting
  • Lokale und entfernte Karte
  • Filtern von Inhalten
  • Syntax-Hervorhebung

Die Benutzeroberfläche von Proxyman ist sehr benutzerfreundlich.

HTTP-Toolkit

HTTP Toolkit ist ein Open-Source HTTP-Debugger. Es handelt sich um eine Desktop-Anwendung, die für Windows, Mac und Linux verfügbar ist.

Im Gegensatz zu anderen HTTP-Debuggern fängt HTTP Toolkit automatisch gezielt bestimmte Clients ab, einschließlich der HTTPS-Einrichtung, anstatt alles von Ihrem gesamten Computer abzufangen. So wird vermieden, dass irrelevanter Datenverkehr erfasst oder andere Anwendungen gestört werden.

YouTube video

Mit einem Klick können Sie Browserfenster (einschließlich Chrome, Firefox und mehr), Backend-/Skriptsprachen wie Node.js, Python und PHP, beliebige Kommandozeilen-Tools, Electron-Apps oder Android-Geräte und -Emulatoren (einschließlich HTTPS-Abfang auf Systemebene) abfangen.

HTTP Toolkit unterstützt Standard-HTTP-Debugger-Funktionen wie Haltepunkte und das Umschreiben des HTTP(S)-Verkehrs, das Filtern und Durchsuchen des gesammelten Datenverkehrs sowie die Hervorhebung und automatische Formatierung vieler gängiger Anfrage- und Antwortkörperformate. Die Kernfunktionen zum Abfangen, Untersuchen und Umschreiben von HTTP(S) sind alle kostenlos verfügbar, während einige erweiterte Premiumfunktionen wie Import/Export und automatisierte Mock-Regeln ein kostenpflichtiges Konto erfordern.

Fazit

Die oben genannten HTTP-Clients und Web-Debugging-Proxys können Ihnen in vielerlei Hinsicht helfen. Die meisten von ihnen sind kostenlos oder bieten eine Testversion an, also probieren Sie einige von ihnen aus, um zu sehen, was für Sie funktioniert.

Viel Spaß bei der Fehlersuche!