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

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:
-
Uitgebreide output:
curl -v https://example.comDit commando geeft gedetailleerde informatie over de aanvraag en het antwoord, inclusief headers en verbindingsdetails. -
Volledige trace dump:
curl --trace - https://example.comDit geeft een hexdump van alle inkomende en uitgaande gegevens, en biedt een uitgebreid overzicht van de volledige communicatie. -
Trace met tijdstempels:
curl --trace - --trace-time https://example.comDit voegt tijdstempels toe aan de trace-output, wat helpt bij het analyseren van problemen met betrekking tot timing. -
Alleen reactie-headers afdrukken:
curl -s -o /dev/null -D - https://example.comDit commando toont alleen de reactie-headers, handig voor snelle header-analyse. -
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. -
Pantheon Debugger gebruiken:
curl -I -H "Pantheon-Debug:1" https://example.comDit commando gebruikt de Pantheon Debug-header om extra informatie over een aanvraag te krijgen, nuttig voor op Pantheon gehoste sites. -
HTTP/2-protocol forceren:
curl --http2 https://example.comDit zorgt voor het gebruik van het HTTP/2-protocol, wat in combinatie met -I kan worden gebruikt om HTTP/2-ondersteuning te verifiëren. -
Debuggen met netcat: In één terminal:
nc -l 1234In een andere:curl http://127.0.0.1:1234Hiermee 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
- Bestanden downloaden: curl kan bestanden van URL’s downloaden.
- Web scraping: curl kan webpagina-inhoud ophalen voor scrapingsdoeleinden.
- Website-testen: curl is nuttig om te controleren of een website toegankelijk is en de inhoud op te halen.
API-interacties
- API-aanvragen verzenden: curl ondersteunt diverse HTTP-methoden (GET, POST, PUT, DELETE) voor interactie met API’s.
- 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
- Connectiviteit controleren: curl kan worden gebruikt om netwerkverbindingen te verifiëren en problemen op te lossen.
- DNS testen: curl maakt het mogelijk om specifieke DNS-servers te forceren voor het oplossen van DNS-gerelateerde problemen.
- Headers inspecteren: curl kan HTTP-headers weergeven, wat nuttig is voor debugging.
Gegevensoverdracht
- FTP-operaties: curl ondersteunt bestandsoverdrachten via het File Transfer Protocol (FTP).
- SMTP-interacties: curl kan worden gebruikt om e-mails te verzenden via het Simple Mail Transfer Protocol (SMTP).
Beveiliging en authenticatie
- SSL-verbindingen: curl ondersteunt veilige verbindingen met behulp van SSL/TLS.
- Authenticatie: curl kan diverse authenticatiemethoden afhandelen, waaronder basisauthenticatie en clientcertificaten.
Ontwikkeling en debugging
- Verschillende HTTP-methoden simuleren: curl stelt ontwikkelaars in staat om verschillende HTTP-methoden eenvoudig te testen.
- 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.