Feilsøk nett-apper: 12 effektive HTTP-klienter & proxy-verktøy

Viktigheten av feilsøkingsverktøy for utviklere

En sentral ferdighet for enhver utvikler og systemadministrator er evnen til å feilsøke applikasjoner, API-er eller tjenester. Kunnskap om de rette verktøyene er avgjørende for å løse problemer effektivt.

Hva innebærer feilsøking?

Feilsøking, som vi ofte ser i krimserier, er en systematisk prosess for å identifisere og løse feil i et program. Det handler om å finne og rette opp problemer som hindrer programvare eller webapplikasjoner i å fungere korrekt. En viktig del av prosessen er å reprodusere feilen.

Dette krever ofte at man manipulerer HTTP-forespørsler, noe som kan være utfordrende med vanlige nettlesere på grunn av begrensninger på opprinnelsesoverskrifter og URL-størrelser. Derfor trenger man kraftige verktøy for å utføre HTTP-manipulasjoner og effektiv feilsøking.

Feilsøking omfatter flere teknikker, inkludert:

  • Interaktiv feilsøking
  • Analyse av kontrollflyt
  • Enhetstesting
  • Integrasjonstesting
  • Analyse av loggfiler
  • Overvåking
  • Minne dump
  • Profilering

Mange nettlesere har innebygde utviklerverktøy som kan brukes til feilsøking av API-er, noe som eliminerer behovet for å utvikle egne verktøy fra bunnen av.

Hva er en HTTP-klient?

Hvis du bygger et system som bruker HTTP-protokollen for distribuert kommunikasjon, som en webapplikasjon, er det viktig å forstå HTTP-klientens rolle.

HTTP, eller HyperText Transfer Protocol, er grunnlaget for kommunikasjon og dataoverføring på internett. Det er en applikasjonsprotokoll som muliggjør surfing på nettet.

En HTTP-klient sender forespørsler til en server i HTTP-tekstformat og mottar svar fra den samme serveren. Det er viktig å skille mellom HTTP-klienter og HTTP-servere.

Forskjellen mellom HTTP-klient og server

HTTP-klienter er ofte nettlesere eller spesialiserte verktøy, mens HTTP-servere fungerer som mellomledd til applikasjonsservere.

Enheter som smarttelefoner, TV-er og spillkonsoller som kobler seg til internett, bruker en HTTP-klient. HTTP-serveren er datamaskinen som klienten kommuniserer med, der klienten sender en forespørsel og serveren svarer.

Eksempler på HTTP-forespørsler

Forespørsel Beskrivelse
GET Henter hele ressursen
HEAD Henter ressursen uten innhold
POST Legger til innhold i en eksisterende ressurs
PUT Endrer en eksisterende ressurs
DELETE Sletter en spesifisert ressurs
TRACE Viser endringer til en ressurs
OPTIONS Viser tilgjengelige HTTP-metoder for URL-en
CONNECT Konverterer tilkoblingen til en TCP/IP-tunnel
PATCH Modifiserer en del av en ressurs

Med de riktige verktøyene er feilsøking blitt enklere enn noen gang. La oss se på noen verktøy som kan gjøre prosessen mer behagelig.

HTTPie

HTTPie har som mål å gjøre CLI-interaksjonen med webtjenester mer brukervennlig. Verktøyet bruker en naturlig syntaks for å sende HTTP-forespørsler.

HTTPie er nyttig for feilsøking, testing og tilkobling til HTTP-servere, og støtter HTTP, HTTPS og proxy-servere.

Høydepunkter:

  • Innebygd JSON-støtte
  • Tilgjengelig for Windows, macOS og Linux
  • Tilpassbare HTTP-hoder og metoder
  • Støtte for å sende skjemaer
  • Frakoblet modus
  • Grunnleggende autentisering
  • Intuitiv syntaks

Du kan også kjøre HTTPie direkte i nettleseren.

Fiddler

Fiddler er en plattformuavhengig proxy for webfeilsøking, som lar deg manipulere nettøkter, inspisere HTTPS-trafikk og overvåke kommunikasjon mellom datamaskinen din og internett.

Fiddler er tilgjengelig for Windows, macOS og Linux, og er et svært populært verktøy for trafikkanalyse.

RESTer

RESTer er et utvidelse for Google Chrome og Firefox.

Høydepunkter:

  • Støtte for autorisasjonshoder med Basic eller Auth2
  • Visning av forespørselshistorikk
  • Utførelse av forespørsler med ulike metoder, URL-er og egendefinerte hoder
  • API-testing og feilsøking

Paw

Paw er en fullverdig HTTP-klient for å sende alle typer HTTP-forespørsler. Den lar deg teste API-er og utforske nye.

Paw er eksklusivt for macOS og har en rekke brukervennlige funksjoner, inkludert import og generering av swagger, RAML, og støtte for JSON-skjema.

Høydepunkter:

  • Støtte for flere autentiseringsmetoder som basic, OAuth, hawk og digest
  • Dynamiske verdier
  • Miljøer
  • Utvidbarhet gjennom Javascript-baserte utvidelser
  • Administrasjon av informasjonskapsler og økter

Requester

Requester er en kraftig klient som kombinerer funksjoner fra HTTPie, Postman og Paw, og fungerer som en utvidelse for Sublime Text editor.

Høydepunkter:

  • Støtte for JSON-skjemaer
  • Forespørselsamlinger og historikk
  • Fargelagt utgang med syntaksutheving
  • Moderne brukergrensesnitt
  • Enkel konfigurering av informasjonskapsler, hoder og forespørsels parametere.
  • Støtte for GraphQL

Postman

Hvis du jobber mye med API-er, vil du sannsynligvis sette pris på Postman.

Postman er en populær HTTP-klient for feilsøking av webapplikasjoner og gjør API-utvikling raskere og enklere.

Høydepunkter:

  • Intuitivt brukergrensesnitt
  • Forespørselshistorikk
  • Automatisert testing
  • Fleksibel API-overvåking
  • Støtte for REST, GraphQL og SOAP
  • Støtte for diverse nyttelasttyper som JSON og HTML

cURL

cURL er et kommandolinjeverktøy for å overføre data ved hjelp av URL-syntaks.

cURL er som regel standardinstallert på de fleste UNIX-baserte operativsystemer og støtter mange protokoller, inkludert FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS og SCP.

Charles Proxy

Charles Proxy er en HTTP og reversert proxy som dirigerer lokal trafikk gjennom seg selv.

Charles kan brukes til SSL-proxying, båndbreddekontroll, AJAX-feilsøking, bruddpunkter og mer.

Whistle

Whistle er et NodeJS-basert feilsøkingsverktøy for å fange og manipulere HTTP-, HTTPS-, WebSocket- og TCP-trafikk.

Du må først installere NodeJS og deretter Whistle ved hjelp av npm.

npm install -g whistle

Du kan utvide funksjonaliteten med plugins dersom de standardfunksjonene ikke dekker dine behov.

mitmproxy

mitmproxy er en populær åpen kildekode HTTPS-proxy som ofte brukes av sikkerhetsforskere. Det kan brukes som en CLI, web eller Python API.

Nettgrensesnittet ligner på Chrome-utviklerverktøy og støtter også HTTP/2.

Proxyman

Proxyman er en førsteklasses macOS-applikasjon for webfeilsøking.

Den fungerer som en «man-in-the-middle» for nettrafikk og tilbyr en rekke funksjoner, som:

  • SSL proxy
  • Gjenta forespørsler
  • Protobuf støtte
  • Omskriv skripting
  • Lokale og eksterne kart
  • Innholdsfiltrering
  • Syntaksutheving

Proxyman har et brukervennlig grensesnitt.

HTTP Toolkit

HTTP Toolkit er en åpen kildekode HTTP-debugger, tilgjengelig for Windows, Mac og Linux.

I motsetning til andre HTTP-feilsøkere, tilbyr HTTP Toolkit automatisk avskjæring av spesifikke klienter, inkludert HTTPS-oppsett. Dette lar deg fokusere på relevant trafikk og unngå forstyrrelser.

Du kan avskjære nettleservinduer (Chrome, Firefox), backend-språk (Node.js, Python, PHP), kommandolinjeverktøy, Electron-apper og Android-enheter.

HTTP Toolkit støtter standard feilsøkingsfunksjoner, inkludert bruddpunkter og omskriving av HTTP(S)-trafikk, filtrering og utheving av trafikk og autoformatering. Kjernefunksjoner er gratis, mens avanserte funksjoner som import/eksport krever en betalt konto.

Konklusjon

De nevnte HTTP-klientene og proxy-verktøyene kan være svært nyttige for feilsøking. Mange er gratis eller tilbyr prøveversjoner, så test gjerne ut noen for å finne det som passer best for deg.

Lykke til med feilsøkingen!