Pentru un dezvoltator sau administrator de sistem, o capacitate esențială este depanarea aplicațiilor, a interfețelor API sau a serviciilor. Cunoașterea instrumentelor potrivite se dovedește a fi un ajutor neprețuit.
Ce înseamnă Depanarea?
Dacă sunteți familiarizat cu serialele polițiste, conceptul de depanare nu ar trebui să fie nou. Depanarea este un proces complex, care include o varietate de strategii. Scopul său este identificarea și eliminarea sistematică a problemelor și erorilor dintr-un program.
Mai precis, depanarea se concentrează pe rezolvarea oricăror probleme care ar putea afecta funcționarea corectă a unui software, sau în acest context, a unei aplicații web. Procesul de depanare a unei API sau a unei aplicații web implică în primul rând încercarea de a reproduce problema.
Astfel, apare necesitatea de a trimite o cerere către API. Aici intervine problema: majoritatea browserelor nu permit modificarea antetului de origine și impun limite pentru dimensiunea URL-urilor.
Cu alte cuvinte, pentru a reproduce o problemă, s-ar putea să fie nevoie să efectuați anumite manipulări HTTP, ceea ce necesită unelte de depanare performante.
Componentele sau tehnicile procesului de depanare includ:
- Depanarea interactivă
- Analiza fluxului de control
- Testarea unitară
- Testarea de integrare
- Analiza fișierelor jurnal
- Monitorizarea
- Analiza memoriei (memory dumps)
- Profilarea
Un aspect interesant este că unele browsere web, care sunt clienți HTTP, vin cu instrumente de dezvoltare web integrate. Aceste instrumente pot fi folosite pentru a depana API-urile, eliminând necesitatea creării unor instrumente personalizate.
Ce este un Client HTTP?
Să presupunem că doriți să construiți un sistem care utilizează protocolul HTTP pentru comunicații distribuite, cum ar fi o aplicație web. În acest caz, ar trebui să acordați atenție componentei client HTTP.
HTTP, sau HyperText Transfer Protocol, este mecanismul care permite comunicarea și transferul de date pe web de fiecare dată când introduceți o adresă URL. Este un protocol de aplicație care face posibilă navigarea pe internet.
Un Client HTTP este un sistem care trimite cereri unui server, folosind formatul text HTTP și, în schimb, primește un răspuns de la același server.
Este crucial să înțelegeți diferențele dintre un client HTTP și un server HTTP.
Diferențele dintre Client și Server HTTP
În timp ce clienții HTTP sunt adesea browsere web sau diverse utilitare, serverele HTTP servesc ca intermediari pentru serverele de aplicații.
Mai simplu spus, smartphone-urile, televizoarele, consolele PlayStation și orice alt dispozitiv care se poate conecta la internet folosesc probabil un client HTTP.
În mod similar, un server HTTP este calculatorul din rețea la care se conectează clientul HTTP. Relația dintre cele două este similară unei conversații, unde clientul HTTP trimite o cerere, iar serverul HTTP răspunde.
Exemple de Cereri HTTP
Cereri | Rezultate |
GET | Solicită întreaga resursă |
HEAD | Solicită resursa fără conținutul principal |
POST | Adaugă conținut la o resursă web existentă |
PUT | Modifică o resursă web existentă |
DELETE | Elimină o resursă specificată |
TRACE | Afișează modificările aduse unei resurse web |
OPTIONS | Afișează metodele HTTP disponibile pentru un URL |
CONNECT | Convertește conexiunea într-un tunel TCP/IP transparent |
PATCH | Modifică parțial o resursă web |
Depanarea web este acum mai simplă ca niciodată. Cu aceste instrumente, vă puteți concentra pe ceea ce vă place să faceți.
HTTPie
Scopul principal al HTTPie este de a face interacțiunea cu serviciile web prin interfața de linie de comandă (CLI) mai prietenoasă. Acest instrument permite trimiterea cererilor folosind o comandă HTTP, cu o sintaxă naturală.
HTTPie poate fi utilizat pentru depanare, testare și conectarea la serverele HTTP. Acesta acceptă HTTP, HTTPS și proxy-uri.
Caracteristici cheie:
- Suport JSON încorporat
- Instalabil pe Windows, macOS și Linux
- Antete și metode HTTP personalizate
- Trimiterea formularelor
- Modul offline
- Autentificare de bază și autentificare digest
- Sintaxă intuitivă
Nu doriți să instalați HTTPie local? Îl puteți rula online.
Fiddler
Fiddler este un instrument proxy de depanare web multiplatformă. Acesta facilitează manipularea sesiunilor web, inspectarea traficului HTTPS și monitorizarea comunicării dintre computer și internet.
Puteți instala Fiddler pe Windows, macOS și Linux. Este probabil cel mai popular instrument pentru depanarea traficului.
RESter
RESter este disponibil ca extensie pentru browserele Google Chrome și Firefox.
Caracteristici cheie:
- Antete de autorizare cu autentificare Basic sau Auth2
- Vizualizarea istoricului solicitărilor
- Realizarea solicitărilor cu orice metodă, URL, corp și antete personalizate
- Testarea și depanarea API-urilor
Paw
Paw este un client HTTP cu funcții complete, care vă permite să trimiteți diferite tipuri de solicitări HTTP. Cu Paw, puteți testa API-urile și explora altele noi.
Paw este dezvoltat exclusiv pentru macOS și oferă funcții ușor de utilizat. Puteți importa și genera documente Swagger, RAML etc., și acceptă schema JSON.
Caracteristici cheie:
- Acceptă multiple tipuri de autentificare, precum Basic, OAuth, Hawk, Digest
- Valori dinamice
- Medii
- Extensibil prin extensii bazate pe JavaScript
- Manipularea cookie-urilor și a sesiunilor
Requester
Requester este un client robust care combină caracteristicile HTTPie, Postman și Paw. Funcționează doar cu editorul Sublime Text.
Caracteristici cheie:
- Suport pentru JSON Schema
- Colecții și istoric al solicitărilor
- Afișare colorată cu evidențiere de sintaxă
- Interfață modernă
- Setare ușoară pentru cookie-uri, antete personalizate, corpul solicitării și parametri de interogare
- Suport pentru GraphQL
Postman
Lucrați frecvent cu API-uri? Atunci vă veți îndrăgosti de Postman.
Postman este, fără îndoială, unul dintre cei mai populari clienți HTTP folosiți pentru depanarea aplicațiilor web. Acesta permite o dezvoltare mai rapidă și mai simplă a API-urilor.
Caracteristici cheie:
- Interfață grafică puternică, ușor de folosit
- Istoricul cererilor
- Testare automată cu runner de colecții
- Monitorizare flexibilă a API-urilor
- Suport pentru REST, GraphQL, SOAP
- Suport pentru încărcări de tip JSON și HTML
cURL
cURL este un instrument de linie de comandă utilizat pentru trimiterea datelor prin sintaxa URL.
cURL este instalat implicit pe majoritatea sistemelor de operare de tip UNIX. Acesta acceptă o multitudine de protocoale, inclusiv FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS și SCP.
Charles Proxy
Așa cum sugerează și numele, Charles Proxy este un proxy HTTP și invers. Acesta funcționează prin redirecționarea traficului local prin intermediul său.
Puteți utiliza Charles pentru proxy SSL, limitarea lățimii de bandă, depanare AJAX, puncte de întrerupere și multe altele.
Whistle
Whistle este un instrument multiplatformă de depanare bazat pe NodeJS, care permite capturarea și manipularea traficului HTTP, HTTPS, WebSocket și TCP.
Pentru a utiliza Whistle, este necesar să instalați mai întâi NodeJS, iar apoi Whistle folosind npm.
npm install -g whistle
Puteți extinde funcționalitățile Whistle prin plugin-uri, în cazul în care caracteristicile implicite nu corespund cerințelor dvs.
mitmproxy
mitmproxy este un proxy HTTPS open-source popular printre cercetătorii în securitate. Poate fi folosit ca interfață de linie de comandă (CLI), interfață web sau API Python.
Interfața web seamănă cu instrumentele pentru dezvoltatori Chrome și suportă HTTP/2.
Proxyman
Similar cu Paw, Proxyman este o aplicație proxy nativă premium pentru depanarea web pe macOS.
Acesta acționează ca un intermediar pentru traficul web și oferă numeroase caracteristici, inclusiv:
- Proxy SSL
- Repetarea solicitărilor
- Suport Protobuf
- Rescrierea scripturilor
- Hărți locale și de la distanță
- Filtrarea conținutului
- Evidențierea sintaxelor
Interfața utilizator Proxyman este foarte intuitivă.
HTTP Toolkit
HTTP Toolkit este un instrument de depanare HTTP open-source. Este o aplicație desktop disponibilă pentru Windows, Mac și Linux.
Spre deosebire de alte instrumente de depanare HTTP, HTTP Toolkit oferă interceptări direcționate automat pentru anumiți clienți, inclusiv configurarea HTTPS, în loc să intercepteze tot traficul de pe computer. În acest fel, se evită capturarea traficului irelevant sau perturbarea altor aplicații.
Cu un singur clic puteți intercepta ferestre de browser (inclusiv Chrome, Firefox și altele), limbaje backend/scripting precum Node.js, Python și PHP, instrumente de linie de comandă, aplicații Electron sau dispozitive și emulatoare Android (inclusiv interceptarea HTTPS la nivel de sistem).
HTTP Toolkit suportă funcții standard de depanare HTTP, incluzând puncte de întrerupere și rescrierea traficului HTTP(S), filtrarea și căutarea traficului colectat, evidențierea și formatarea automată pentru multe formate populare de solicitare și răspuns. Funcțiile de bază pentru interceptarea, inspectarea și rescrierea HTTP(S) sunt disponibile gratuit, în timp ce unele funcții premium avansate, precum import/export și reguli automate simulate, necesită un cont plătit.
Concluzie
Clienții HTTP și proxy-urile de depanare web menționate pot fi de mare ajutor. Majoritatea sunt gratuite sau oferă o perioadă de încercare, așa că vă încurajăm să testați câteva pentru a vedea care vi se potrivesc cel mai bine.
Depanare fericită!