L’une des compétences essentielles d’un développeur et d’un administrateur système est de déboguer l’application, l’API ou les services, et connaître les bons outils peut vous sauver la vie.
Qu’est-ce que le débogage ?
Si vous regardez des séries policières, l’idée de débogage ne vous sera pas étrangère. Le débogage est un processus qui implique de nombreuses tactiques. Il s’agit de trouver et de résoudre systématiquement les problèmes et les erreurs au sein d’un programme.
En outre, le débogage permet d’identifier tous les problèmes susceptibles d’empêcher le bon fonctionnement d’un logiciel ou, dans le cas présent, d’une application web. Le processus de débogage de votre API ou de votre application web implique principalement une tentative de reproduction du problème.
Par conséquent, il est nécessaire d’envoyer une demande d’API. C’est là que le bât blesse. La plupart des navigateurs vous empêchent de modifier l’en-tête d’origine, et même les limites de taille des URL.
En d’autres termes, pour reproduire le problème, vous devrez peut-être effectuer quelques manipulations HTTP. Pour ce faire, vous aurez besoin d’outils de débogage puissants.
Tous les composants ou tactiques du processus de débogage sont inclus ;
- Débogage interactif
- L’analyse du flux de contrôle
- Les tests unitaires
- Les tests d’intégration
- L’analyse des fichiers journaux
- Surveillance
- Dumps de mémoire
- Profilage
Il est intéressant de savoir que certains clients HTTP, c’est-à-dire les navigateurs web, disposent d’outils de développement web intégrés. Ces outils peuvent être utilisés pour déboguer les API. Il n’est donc pas nécessaire d’écrire votre propre outil de débogage.
Qu’est-ce qu’un client HTTP ?
Supposons que vous envisagiez de construire un système qui exploite le protocole HTTP pour la communication distribuée ou la prise en compte du protocole HTTP, comme une application web. Dans ce cas, vous voudrez peut-être vous pencher sur le composant client HTTP.
Le protocole HTTP (HyperText Transfer Protocol) est la raison pour laquelle vous pouvez communiquer ou transférer des données sur le web, chaque fois que vous tapez une URL. Il s’agit d’un protocole d’application qui permet de naviguer sur l’internet.
Le client HTTP est un système qui envoie des requêtes à un serveur au format texte HTTP et qui reçoit en retour une réponse de ce même serveur.
Il est essentiel de connaître les différences entre un client HTTP et le serveur HTTP.
Différences entre le client et le serveur HTTP
Alors que le client HTTP est souvent un navigateur web ou un utilitaire, les serveurs HTTP servent de mandataires aux serveurs d’application.
En d’autres termes, vos smartphones, téléviseurs, PlayStation, en fait tout appareil pouvant se connecter à l’internet, utilisent probablement un client HTTP.
De même, le serveur HTTP est l’ordinateur du réseau auquel le client HTTP se connecte. La relation qu’ils partagent est plutôt de l’ordre de la conversation. Le client HTTP envoie une requête et le serveur HTTP répond.
Exemples de requêtes HTTP
Requêtes | Résultats |
GET | Demande la totalité de la ressource |
HEAD | Demande la ressource sans le corps |
POST | Ajoute du contenu à une ressource web existante |
PUT | Modifie une ressource web existante |
DELETE | Supprime une ressource spécifiée |
TRACE | Affiche les modifications apportées à une ressource web |
OPTIONS | Affiche les méthodes HTTP disponibles pour l’URL |
CONNECT | Convertit la connexion demandée en un tunnel TCP/IP transparent |
PATCH | Modifie partiellement une ressource web |
Déboguer le web n’a jamais été aussi facile. Avec ces outils, vous pouvez enfin vous détendre tout en faisant ce que vous aimez.
HTTPie
Le but ultime de HTTPie est de rendre l’interaction CLI avec les services web conviviale. Cet outil fournit une commande HTTP pour envoyer des requêtes, le tout avec une syntaxe naturelle.
HTTPie peut être utilisé pour déboguer, tester et se connecter à des serveurs HTTP. Il prend en charge HTTP, HTTPS et les proxys.
Points forts
- Système de support JSON intégré
- Peut être installé sur Windows, macOS et Linux
- En-têtes et méthodes HTTP personnalisées
- Soumission de formulaires
- Mode hors ligne
- Authentification de base et digest
- Syntaxe intuitive
Vous ne souhaitez pas installer HTTPie localement ?
Pas de souci, vous pouvez maintenant l’exécuter en ligne.
Fiddler
Fiddler est un proxy de débogage web multiplateforme. Il permet de manipuler les sessions web, d’inspecter le trafic HTTPS et de surveiller le trafic entre votre ordinateur et Internet.
Vous pouvez installer Fiddler sur Windows, macOS et Linux. C’est probablement l’outil le plus populaire pour déboguer le trafic.
RESTer
RESTer est disponible sous forme d’extension pour Google Chrome et Firefox.
Points forts
- En-têtes d’autorisation avec authentification Basic ou Auth2
- Visualisation de l’historique des requêtes
- Exécution de requêtes avec n’importe quelle méthode, URL, corps et en-têtes personnalisés
- Test et débogage des API
Paw
Paw est un client HTTP complet qui vous permet d’envoyer toutes sortes de requêtes HTTP. Avec Paw, vous pouvez tester vos API et en explorer de nouvelles.
Paw est exclusivement conçu pour macOS, et ses fonctionnalités sont faciles à utiliser. Vous pouvez importer et générer swagger, RAML, etc. et il prend en charge le schéma JSON.
Points forts
- Supporte plusieurs authentifications comme basic, OAuth, hawk, digest
- Valeurs dynamiques
- Environnements
- Extension par le biais d’extensions basées sur java-script
- Cookies et manipulation de session
Requête
Requester est un client robuste qui combine les caractéristiques de HTTPie, Postman et Paw. Il ne fonctionne qu’avec l’éditeur Sublime Text.
Points forts
- Supporte JSON Schemer
- Collections de requêtes et historique
- Sortie colorée avec mise en évidence de la syntaxe
- Interface utilisateur moderne
- Les cookies, les en-têtes personnalisés, le corps de la requête et les paramètres de la requête sont faciles à définir.
- Support GraphQL
Postman
Vous travaillez toujours sur des API ?
Vous allez tomber amoureux de Postman.
Postman est sans conteste l’un des clients HTTP les plus populaires utilisés pour déboguer les applications web. Il permet un développement plus rapide et plus facile des API.
Points forts
- Une interface graphique puissante et conviviale
- Historique des requêtes
- Tests automatisés avec collection runner
- Surveillance flexible des API
- Prise en charge de REST, GraphQL, SOAP
- Prise en charge de charges utiles multiples, y compris JSON et HTML
cURL
cURL est un outil de ligne de commande utilisé pour envoyer des données à l’aide de la syntaxe URL.
L’avantage est que cURL est installé par défaut sur la plupart des systèmes d’exploitation UNIX. Il prend en charge de nombreux protocoles, notamment FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS et SCP.
Proxy Charles
Comme son nom l’indique, Charles Proxy est un proxy HTTP et un proxy inverse. Il fonctionne en acheminant le trafic local à travers lui.
Vous pouvez utiliser Charles pour le proxy SSL, la limitation de la bande passante, le débogage AJAX, les points d’arrêt, et plus encore.
Sifflet
Whistle est un outil de débogage multiplateforme basé sur NodeJS pour capturer et manipuler le trafic HTTP, HTTPS, WebSocket et TCP.
Tout d’abord, vous devez installer NodeJS puis Whistle à l’aide de npm.
npm install -g whistle
Vous pouvez toujours étendre les fonctionnalités avec le plugin si les fonctionnalités par défaut ne répondent pas à vos besoins.
mitmproxy
mitmproxy est un proxy HTTPS open-source populaire parmi les chercheurs en sécurité. Vous pouvez l’utiliser comme CLI, web ou API Python.
L’interface web vous donne l’aspect et la sensation des outils de développement de Chrome. Il prend également en charge HTTP/2.
Proxyman
Comme Paw, Proxyman est une application proxy de débogage web native macOS haut de gamme.
Il agit comme un homme du milieu pour le trafic web et offre de nombreuses fonctionnalités, dont les suivantes.
- Proxy SSL
- Répétition des requêtes
- Protobuf
- Script ReWrite
- Carte locale et distante
- Filtrage du contenu
- Mise en évidence de la syntaxe
L’interface utilisateur de Proxyman est très conviviale.
Boîte à outils HTTP
HTTP Toolkit est un débogueur HTTP open-source. Il s’agit d’une application de bureau disponible pour Windows, Mac et Linux.
Contrairement à d’autres débogueurs HTTP, HTTP Toolkit permet une interception automatiquement ciblée pour des clients spécifiques, y compris la configuration HTTPS, plutôt que d’intercepter tout votre ordinateur, ce qui évite de capturer du trafic non pertinent ou de perturber d’autres applications.
En un seul clic, vous pouvez intercepter les fenêtres des navigateurs (y compris Chrome, Firefox et autres), les langages backend/scripting comme Node.js, Python et PHP, tous les outils de ligne de commande, les applications Electron, les appareils et émulateurs Android (y compris l’interception HTTPS au niveau du système).
HTTP Toolkit prend en charge les fonctions de débogage HTTP standard, notamment les points d’arrêt et la réécriture du trafic HTTP(S), le filtrage et la recherche du trafic collecté, ainsi que la mise en évidence et le formatage automatique de nombreux formats de corps de requête et de réponse courants. Les fonctions de base pour intercepter, inspecter et réécrire HTTP(S) sont toutes disponibles gratuitement, tandis que certaines fonctions premium avancées comme l’import/export et les règles fictives automatisées requièrent un compte payant.
Conclusion
Les clients HTTP et les proxy de débogage web mentionnés ci-dessus peuvent vous aider de bien des manières. La plupart d’entre eux sont gratuits ou offrent une période d’essai, alors essayez-en quelques-uns pour voir ce qui fonctionne pour vous.
Bon dépannage!