cURL Overzicht

cUrl nuttige opdrachten met parameters

Hier is een cheatsheet met de meest nuttige cURL opdrachten en hun parameters:

een persoon met een curl bord

De bovenstaande afbeelding is gegenereerd door Flux - text to image AI model.

Basisgebruik van cURL

  • Bestand downloaden: curl http://example.com/file.zip -o file.zip
  • Meerdere bestanden downloaden: curl -O URL1 -O URL2
  • Redirects volgen: curl -L http://example.com/file
  • Alleen headers tonen: curl -I http://example.com

Authenticatie

  • Basisauthenticatie: curl -u username:password http://example.com
  • Gebruik .netrc bestand: curl --netrc-file .netrc http://example.com

HTTP Methoden

  • POST-aanvraag: curl -X POST -d 'name=value' http://example.com
  • PUT-aanvraag: curl -X PUT -d @file http://example.com
  • Aangepaste methode: curl -X METHODE http://example.com

Headers en Data

  • Aangepaste header toevoegen: curl -H "X-Header: Value" http://example.com
  • JSON-data verzenden: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • Formulierdata verzenden: curl -F "key=value" -F "file=@localfile" 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 Netwerken

  • Proxy gebruiken: curl -x proxyserver.server.com:PORT http://example.com
  • Download snelheid beperken: curl --limit-rate 1000B -O http://example.com/file

Uitvoerbeheer

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

Overige

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

Deze cheatsheet dekt de meest gebruikte cURL opdrachten en hun parameters, en biedt een snelle verwijzing voor verschillende HTTP-operaties en dataoverdrachten.

Geavanceerde cURL opdrachten

Hier zijn enkele geavanceerde cURL opdrachten voor het debuggen:

  1. Gedetailleerde uitvoer: curl -v https://example.com Deze opdracht geeft gedetailleerde informatie over de aanvraag en het antwoord, inclusief headers en verbinding details.

  2. Volledige trace dump: curl --trace - https://example.com Deze opdracht geeft een hexdump van alle binnenkomende en uitgaande gegevens, wat een compleet overzicht van de gehele communicatie biedt.

  3. Trace met tijdstempels: curl --trace - --trace-time https://example.com Deze opdracht voegt tijdstempels toe aan de trace-uitvoer, wat handig is voor het analyseren van tijdsgerelateerde problemen.

  4. Alleen responsheaders tonen: curl -s -o /dev/null -D - https://example.com Deze opdracht toont alleen de responsheaders, wat handig is voor snelle headeranalyse.

  5. Alleen aanvraagheaders tonen: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' Deze complexe opdracht filtert alleen de aanvraagheaders, wat handig is voor het inspecteren van wat er wordt gestuurd.

  6. Gebruik van Pantheon Debugger: curl -I -H "Pantheon-Debug:1" https://example.com Deze opdracht gebruikt de Debug-header van Pantheon om aanvullende informatie over de aanvraag te krijgen, wat handig is voor websites die op Pantheon worden gehost.

  7. HTTP/2 protocol forceren: curl --http2 https://example.com Deze opdracht zorgt ervoor dat het HTTP/2 protocol wordt gebruikt, wat kan worden gecombineerd met -I 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 Dit laat je exact zien wat curl stuurt, wat handig is voor payload debugging.

Deze geavanceerde opdrachten bieden krachtige debugmogelijkheden, waarmee ontwikkelaars verschillende aspecten van HTTP-communicatie kunnen inspecteren en complexe problemen kunnen oplossen.

Algemene cURL toepassingen

curl is een veelzijdig command-line-hulpmiddel met vele toepassingen. Hier zijn enkele van de meest voorkomende toepassingen van curl:

Webinteracties

  1. Bestanden downloaden: curl kan bestanden downloaden van URLs.
  2. Web scraping: curl kan webpagina-inhoud ophalen voor scraping-doelen.
  3. Website testen: curl is handig om te controleren of een website bereikbaar is en om de inhoud ervan op te halen.

API-interacties

  1. API-aanvragen sturen: curl ondersteunt verschillende HTTP-methoden (GET, POST, PUT, DELETE) voor het interactie met APIs.
  2. API-eindpunten testen: curl biedt een snelle manier om API-eindpunten te testen en te debuggen zonder een specifieke API-client te hoeven gebruiken.

Netwerkprobleemoplossing

  1. Connectiviteit controleren: curl kan worden gebruikt om netwerkverbindingen te controleren en problemen te troubleshooten.
  2. DNS testen: curl laat je specifieke DNS-servers forceren voor het troubleshooten van DNS-gerelateerde problemen.
  3. Headers inspecteren: curl kan HTTP-headers tonen, wat handig is voor het debuggen.

Dataoverdracht

  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 beveiligde verbindingen via SSL/TLS.
  2. Authenticatie: curl kan verschillende authenticatiemethoden verwerken, waaronder basisauthenticatie en clientcertificaten.

Ontwikkeling en debuggen

  1. Verschillende HTTP-methoden simuleren: curl laat ontwikkelaars gemakkelijk verschillende HTTP-methoden testen.
  2. Gedetailleerde logboekregistratie: curl’s gedetailleerde modus biedt gedetailleerde informatie over de aanvraag-antwoordcyclus, wat nuttig is voor het debuggen.

Deze toepassingen tonen de flexibiliteit van curl als tool voor webinteracties, API-testen, netwerkprobleemoplossing en ontwikkelingstaken.

Website-prestatietesten met cURL

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

Basisprestatietest

Om een eenvoudige meting van de laadtijd van een website te krijgen, gebruik je deze opdracht:

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

Deze opdracht geeft de totale tijd weer die nodig was om de website op te halen[2].

Gedetailleerde prestatieindicatoren

Voor een uitgebreidere analyse kun je curl gebruiken om meerdere prestatieindicatoren te meten:

curl -s -w 'Testen van website responsduur voor :%{url_effective}\n\nLookup tijd:\t\t%{time_namelookup}\nConnect tijd:\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

Deze opdracht geeft een overzicht van de verschillende stappen in het laadproces, waaronder DNS-lookup tijd, connectietijd en totale tijd[1].

Geavanceerde indicatoren

Voor nog meer gedetailleerde analyse kun je extra indicatoren toevoegen:

curl -o /dev/null -w "HTTP-versie: %{http_version}\nPaginagrootte: %{size_download} bytes\nResponscode: %{response_code}\nDNS-lookup: %{time_namelookup} sec\nConnectietijd: %{time_connect} sec\nTijd tot eerste byte: %{time_starttransfer} sec\nTotale tijd: %{time_total} sec\n" -s https://example.com

Deze opdracht bevat informatie over de HTTP-versie, paginagrootte en responscode[3].

Benchmarken van meerdere aanvragen

Om consistentie te testen of prestaties te monitoren over tijd, kun je een lus gebruiken om meerdere aanvragen te maken:

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

Deze test wordt vijf keer uitgevoerd en toont de totale tijd voor elke aanvraag[3].

Een prestatietestscript maken

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

#!/bin/bash
curl -s -w 'Testen van website responsduur voor :%{url_effective}\n\nLookup tijd:\t\t%{time_namelookup}\nConnect tijd:\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” met de website die je wilt testen. Dit script slaat de resultaten op in een bestand met een datumstempel[5].

Door deze curl-opdrachten en scripts te gebruiken, kun je effectief de prestaties van een website meten en monitoren, waardoor je potentiële bottlenecks kunt identificeren en de laadtijd kunt optimaliseren.