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
Anfragen | Ergebnisse |
GET | Fordert die gesamte Ressource an |
HEAD | Fordert die Ressource ohne den Textkörper an |
POST | Fügt einer bestehenden Webressource Inhalte hinzu |
PUT | Ändert eine bestehende Webressource |
DELETE | Entfernt eine angegebene Ressource |
TRACE | Zeigt die Änderungen an einer Webressource an |
OPTIONS | Zeigt die verfügbaren HTTP-Methoden für die URL an |
CONNECT | Setzt 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.
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.
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.
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!