cURL Cheatsheet

Nuttige cUrl-commando's met parameters

Hier is een naslagwerk voor de meest nuttige cURL-commando’s met hun parameters:

een persoon met een krulteken

De bovenstaande afbeelding is gegenereerd door Flux - tekst-naar-afbeelding AI-model.

cURL is een essentieel commando-lijn hulpmiddel voor het maken van HTTP-aanvragen en het overdragen van gegevens. Voor een uitgebreide gids over ontwikkelaarshulpmiddelen, inclusief Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions en Linux-pakketbeheer, zie Ontwikkelaarshulpmiddelen: De volledige gids voor moderne ontwikkelingswerkstromen.

Basis cURL-gebruik

  • Een bestand downloaden: curl http://example.com/file.zip -o file.zip
  • Meerdere bestanden downloaden: curl -O URL1 -O URL2
  • Doorverwijzingen volgen: curl -L http://example.com/file
  • Alleen headers weergeven: curl -I http://example.com

Authenticatie

  • Basisauthenticatie: curl -u gebruikersnaam:wachtwoord http://example.com
  • .netrc-bestand gebruiken: curl --netrc-file .netrc http://example.com

HTTP-methoden

  • POST-aanvraag: curl -X POST -d 'naam=waarde' http://example.com
  • PUT-aanvraag: curl -X PUT -d @bestand http://example.com
  • Aangepaste methode: curl -X METHODE http://example.com

Headers en gegevens

  • Aangepaste header toevoegen: curl -H "X-Header: Waarde" http://example.com
  • JSON-gegevens verzenden: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • Formuliergegevens verzenden: curl -F "key=value" -F "file=@lokaalbestand" http://example.com

SSL/TLS-opties

  • SSL-certificaatverificatie negeren: curl -k https://example.com
  • Clientcertificaat gebruiken: curl --cert cert.pem --key key.pem https://example.com

Proxy en netwerk

  • Een proxy gebruiken: curl -x proxyserver.server.com:POORT http://example.com
  • Downloadsnelheid beperken: curl --limit-rate 1000B -O http://example.com/file

Outputcontrole

  • Stil modus: curl -s http://example.com
  • Uitgebreide modus: curl -v http://example.com
  • Output naar bestand schrijven: curl -o bestand.html http://example.com
  • Opslaan met externe bestandsnaam: curl -O http://example.com/file.zip

Diverse

  • Een mislukte download hervatten: curl -C - -o gedeeltelijk_bestand.zip http://example.com/file.zip
  • Een time-out instellen: curl --connect-timeout 10 http://example.com
  • Een configuratiebestand gebruiken: curl -K config_bestand http://example.com

Dit naslagwerk dekt de meest gebruikte cURL-commando’s en hun parameters, en biedt een snelle referentie voor diverse HTTP-operaties en gegevensoverdrachten.

Geavanceerde cURL-commando’s

Hier zijn enkele geavanceerde curl-commando’s voor het oplossen van problemen:

  1. Uitgebreide output: curl -v https://example.com Dit commando geeft gedetailleerde informatie over de aanvraag en het antwoord, inclusief headers en verbindingsdetails.

  2. Volledige trace dump: curl --trace - https://example.com Dit geeft een hexdump van alle inkomende en uitgaande gegevens, en biedt een uitgebreid overzicht van de volledige communicatie.

  3. Trace met tijdstempels: curl --trace - --trace-time https://example.com Dit voegt tijdstempels toe aan de trace-output, wat helpt bij het analyseren van problemen met betrekking tot timing.

  4. Alleen reactie-headers afdrukken: curl -s -o /dev/null -D - https://example.com Dit commando toont alleen de reactie-headers, handig voor snelle header-analyse.

  5. Alleen aanvraag-headers afdrukken: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' Dit complexe commando filtert alleen de aanvraag-headers, wat nuttig is voor het inspecteren van wat er wordt verzonden.

  6. Pantheon Debugger gebruiken: curl -I -H "Pantheon-Debug:1" https://example.com Dit commando gebruikt de Pantheon Debug-header om extra informatie over een aanvraag te krijgen, nuttig voor op Pantheon gehoste sites.

  7. HTTP/2-protocol forceren: curl --http2 https://example.com Dit zorgt voor het gebruik van het HTTP/2-protocol, wat in combinatie met -I kan worden gebruikt om HTTP/2-ondersteuning te verifiëren.

  8. Debuggen met netcat: In één terminal: nc -l 1234 In een andere: curl http://127.0.0.1:1234 Hiermee kunt u precies zien wat curl verzendt, wat nuttig is voor payload-debugging.

Deze geavanceerde commando’s bieden krachtige debugmogelijkheden en stellen ontwikkelaars in staat diverse aspecten van HTTP-communicatie te inspecteren en complexe problemen op te lossen.

Gebruikelijke cURL-gebruiksgevallen

curl is een veelzijdig commando-lijn hulpmiddel met talloze toepassingen. Hier zijn enkele van de meest voorkomende gebruiksscenario’s voor curl:

Web-interacties

  1. Bestanden downloaden: curl kan bestanden van URL’s downloaden.
  2. Web scraping: curl kan webpagina-inhoud ophalen voor scrapingsdoeleinden.
  3. Website-testen: curl is nuttig om te controleren of een website toegankelijk is en de inhoud op te halen.

API-interacties

  1. API-aanvragen verzenden: curl ondersteunt diverse HTTP-methoden (GET, POST, PUT, DELETE) voor interactie met API’s.
  2. API-endpoints testen: curl biedt een snelle manier om API-endpoints te testen en te debuggen zonder een dedicated API-client nodig te hebben.

Netwerkproblemen oplossen

  1. Connectiviteit controleren: curl kan worden gebruikt om netwerkverbindingen te verifiëren en problemen op te lossen.
  2. DNS testen: curl maakt het mogelijk om specifieke DNS-servers te forceren voor het oplossen van DNS-gerelateerde problemen.
  3. Headers inspecteren: curl kan HTTP-headers weergeven, wat nuttig is voor debugging.

Gegevensoverdracht

  1. FTP-operaties: curl ondersteunt bestandsoverdrachten via het File Transfer Protocol (FTP).
  2. SMTP-interacties: curl kan worden gebruikt om e-mails te verzenden via het Simple Mail Transfer Protocol (SMTP).

Beveiliging en authenticatie

  1. SSL-verbindingen: curl ondersteunt veilige verbindingen met behulp van SSL/TLS.
  2. Authenticatie: curl kan diverse authenticatiemethoden afhandelen, waaronder basisauthenticatie en clientcertificaten.

Ontwikkeling en debugging

  1. Verschillende HTTP-methoden simuleren: curl stelt ontwikkelaars in staat om verschillende HTTP-methoden eenvoudig te testen.
  2. Uitgebreide logging: de uitgebreide modus van curl biedt gedetailleerde informatie over de aanvraag-antwoordcyclus, wat helpt bij debugging.

Deze gebruiksscenario’s demonstreren de flexibiliteit van curl als hulpmiddel voor webinteracties, API-testen, netwerkproblemen oplossen en ontwikkelingstaken.

Website-prestatietesten met cURL

curl is een krachtig hulpmiddel voor het testen van website-prestaties. Hier is hoe u het kunt gebruiken om verschillende aspecten van de laadsnelheid van een website te meten:

Basis prestatietest

Om een simpele meting van de laadtijd van een website te krijgen, gebruik dit commando:

curl -o /dev/null -s -w "Totale tijd: %{time_total}s\n" "https://example.com"

Dit commando zal de totale tijd weergeven die het duurde om de website op te halen[2].

Gedetailleerde prestatie-metrics

Voor een meer uitgebreide analyse kunt u curl gebruiken om meerdere prestatie-metrics te meten:

curl -s -w 'Testen Website-reactietijd voor :%{url_effective}\n\nOpzoektijd:\t\t%{time_namelookup}\nVerbindingstijd:\t\t%{time_connect}\nPre-transfer tijd:\t%{time_pretransfer}\nStart-transfer tijd:\t%{time_starttransfer}\n\nTotale tijd:\t\t%{time_total}\n' -o /dev/null https://example.com

Dit commando biedt een opsplitsing van de verschillende stadia in het laadproces, inclusief DNS-opzoektijd, verbindingstijd en totale tijd[1].

Geavanceerde metrics

Voor nog gedetailleerdere analyse kunt u extra metrics opnemen:

curl -o /dev/null -w "HTTP-versie: %{http_version}\nPagina-grootte: %{size_download} bytes\nReactie-code: %{response_code}\nDNS-opzoek: %{time_namelookup} sec\nVerbindingstijd: %{time_connect} sec\nTijd tot eerste byte: %{time_starttransfer} sec\nTotale tijd: %{time_total} sec\n" -s https://example.com

Dit commando bevat informatie over de HTTP-versie, paginagrootte en reactiecode[3].

Benchmarking van meerdere aanvragen

Om consistentie te testen of prestaties over tijd te monitoren, kunt u een lus gebruiken om meerdere aanvragen te doen:

for i in {1..5}; do curl -o /dev/null -s -w "Aanvraag $i Totale tijd: %{time_total}\n" https://example.com; done

Dit voert de test vijf keer uit en toont de totale tijd voor elke aanvraag[3].

Een prestatietestscript maken

U kunt een eenvoudig bash-script maken om deze tests te automatiseren en de resultaten op te slaan:

#!/bin/bash
curl -s -w 'Testen Website-reactietijd voor :%{url_effective}\n\nOpzoektijd:\t\t%{time_namelookup}\nVerbindingstijd:\t\t%{time_connect}\nPre-transfer tijd:\t%{time_pretransfer}\nStart-transfer tijd:\t%{time_starttransfer}\n\nTotale tijd:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"

Vervang “URL” door de website die u wilt testen. Dit script slaat de resultaten op in een bestand met een datumstempel[5].

Met behulp van deze curl-commando’s en scripts kunt u effectief website-prestaties meten en monitoren, wat u helpt potentiële bottlenecks te identificeren en laadtijden te optimaliseren.