cURL gebruiken in ServBay
cURL is een krachtig commandoregelprogramma en bibliotheek, veelgebruikt voor gegevensoverdracht via verschillende protocollen zoals HTTP, HTTPS, FTP en meer. In webontwikkeling is cURL een onmisbare tool, uitermate geschikt voor het uitvoeren van HTTP-verzoeken, API-aanroepen, downloaden of uploaden van bestanden, en het testen van verbindingen met diensten.
ServBay, als lokale webontwikkelomgeving bedoeld voor ontwikkelaars, wordt standaard geleverd met de nieuwste versie van cURL. Je hoeft deze dus niet apart te installeren. Dat betekent dat je direct het curl
commando kunt gebruiken in de door ServBay geleverde terminalomgeving, zodat je gemakkelijk netwerkinteracties en tests kunt uitvoeren.
In dit artikel leggen we in detail uit hoe je cURL binnen ServBay gebruikt, inclusief veelgebruikte voorbeelden en geavanceerde tips.
Installatie en configuratie
cURL installeren
ServBay wordt standaard geleverd met cURL, dus aparte installatie is niet nodig. Je kunt het curl
commando direct gebruiken in de terminal die ServBay aanbiedt.
Om te verifiëren of cURL beschikbaar is en om de versie te bekijken, voer je het volgende commando uit in de ServBay-terminal:
bash
curl --version
1
Dit commando laat de versie-informatie van cURL zien, samen met een lijst van ondersteunde protocollen en functies, ter bevestiging dat alles correct is geïnstalleerd.
cURL configureren
Voor de meeste dagelijkse toepassingen werkt cURL direct zonder extra configuratie. Het gedrag ervan kun je eenvoudig sturen via het grote aantal commandoregelopties om zo te voldoen aan uiteenlopende behoeften voor gegevensoverdracht.
Basistoepassingen
cURL biedt veel commandoregelopties voor allerlei soorten gegevensoverdracht. Hier volgen een paar basisvoorbeelden die laten zien hoe je cURL gebruikt voor veelvoorkomende webontwikkeltaken:
Een HTTP GET-verzoek versturen
Een GET-verzoek sturen is een van de meest gebruikelijke functies van cURL, bedoeld om bronnen op te halen vanaf een opgegeven URL.
bash
curl -X GET https://api.servbay.demo/data
1
Omdat GET de standaardmethode is, kan het vereenvoudigd worden tot:
bash
curl https://api.servbay.demo/data
1
Een HTTP POST-verzoek versturen
Een POST-verzoek wordt meestal gebruikt om gegevens naar een server te verzenden, zoals formulierdata of een JSON-payload. Met de optie -d
(of --data
) geef je de te verzenden gegevens aan.
bash
curl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
1
Bestanden downloaden
Met cURL is bestanden downloaden heel eenvoudig. Met de -O
optie wordt het bestand met de originele naam op de huidige locatie opgeslagen.
bash
curl -O https://servbay.demo/file.zip
1
Wil je zelf de bestandsnaam bepalen, gebruik dan de -o
optie:
bash
curl -o lokaal_bestand.zip https://servbay.demo/file.zip
1
Bestanden uploaden
Je kunt eenvoudig een bestand uploaden via cURL. Gebruik hiervoor de -F
(of --form
) optie, doorgaans in het formaat name=@/pad/naar/bestand
.
bash
curl -X POST -F "file=@/Applications/ServBay/www/servbay.demo/upload/document.pdf" https://api.servbay.demo/upload
1
Vervang /Applications/ServBay/www/servbay.demo/upload/document.pdf
door het daadwerkelijke pad van het bestand dat je wilt uploaden.
Geavanceerde toepassingen
Naast de basisfuncties biedt cURL veel geavanceerde opties, wat het een bijzonder flexibel netwerkprogramma maakt.
HTTP-headers instellen
Met de -H
(of --header
) optie kun je aangepaste HTTP-headers toevoegen aan je verzoek. Dit is vooral nuttig bij het verzenden van bijvoorbeeld een specifiek contenttype (zoals JSON) of het doorgeven van authenticatiegegevens (zoals een API-key of Bearer token).
bash
curl -H "Content-Type: application/json" -H "Authorization: Bearer your_token_here" https://api.servbay.demo/data
1
Werken met JSON-gegevens
In moderne API-ontwikkeling is JSON het meest gebruikte gegevensformaat. Met cURL kun je eenvoudig JSON versturen én ontvangen.
JSON verzenden
Bij het verzenden van JSON moet je de Content-Type
header op application/json
zetten en de JSON-string via de -d
optie meesturen.
bash
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' https://api.servbay.demo/data
1
JSON-response ophalen en parsen (met jq)
De standaardresponse van cURL is platte tekst. Om het JSON-antwooord handig te bekijken en te parsen, kun je de krachtige commandoregeltool jq
gebruiken.
bash
curl -s https://api.servbay.demo/data | jq .
1
Let op: jq
is niet standaard inbegrepen bij ServBay. Mogelijk moet je deze apart installeren. Op macOS kan dat eenvoudig via Homebrew met brew install jq
. De -s
optie van cURL zet de tool in silent-modus (geen voortgangs- of foutmeldingen), zodat enkel het antwoord naar jq
wordt gestuurd. Meer informatie vind je op de officiële jq-website.
Cookies beheren
cURL kan cookies opslaan en verzenden, wat essentieel is voor het testen van webapplicaties die sessiebeheer vereisen.
Cookies opslaan in een bestand
Met de -c
(of --cookie-jar
) optie sla je cookies die in het antwoord zitten op in een bestand.
bash
curl -c cookies.txt https://servbay.demo
1
Cookies uit bestand gebruiken
Met de -b
(of --cookie
) optie laad je cookies uit een bestand en stuur je ze mee met je verzoek.
bash
curl -b cookies.txt https://servbay.demo/profile
1
Een proxy gebruiken
Heb je een proxyserver nodig om het netwerk te bereiken, gebruik dan de -x
(of --proxy
) optie om het proxyadres op te geven.
bash
curl -x http://proxy.servbay.demo:8080 https://api.servbay.demo/data
1
Bandbreedte beperken
Met de --limit-rate
optie kun je de overdrachtssnelheid beperken. Dit geef je op in bytes per seconde, eventueel gevolgd door k, m, of g. Handig bij tests met netwerklimieten of als je wilt voorkomen dat je te veel bandbreedte gebruikt.
bash
curl --limit-rate 100K https://servbay.demo/largefile.zip -O
1
Download hervatten (resume)
Bij het downloaden van grote bestanden ondersteunt cURL het hervatten van een onderbroken download. Gebruik de -C -
optie om cURL het reeds gedownloade deel te laten detecteren en verder te gaan vanaf het punt van onderbreking.
bash
curl -C - -O https://servbay.demo/largefile.zip
1
SSL-certificaten verifiëren
Standaard controleert cURL het SSL-certificaat bij HTTPS-verbindingen. Wil je een specifiek CA-certificaatbestand gebruiken, doe dat dan met de --cacert
optie.
bash
curl --cacert /pad/naar/custom_ca.crt https://secure.servbay.demo
1
Als je binnen ServBay een HTTPS-site gebruikt en een certificaat hebt ondertekend met het ServBay root-certificaat (ServBay User CA of ServBay Public CA), kun je het CA-certificatenpakket van ServBay gebruiken voor validatie. Raadpleeg hiervoor de ServBay SSL/HTTPS-documentatie voor het exacte pad, meestal te vinden onder etc/ssl
in de installatie-directory van ServBay.
Waarschuwing: In sommige testgevallen kun je met de optie --insecure
(of -k
) SSL-certificaatfouten negeren. Dit wordt ten zeerste afgeraden voor productieomgevingen of bij gevoelige gegevens, omdat essentiële beveiligingscontroles dan worden uitgeschakeld.
bash
curl --insecure https://secure.servbay.demo
1
Veelgestelde vragen (FAQ)
1. Het curl
commando wordt niet gevonden in de ServBay-terminal
- Oorzaak: Dit betekent meestal dat het terminalpad voor uitvoerbare bestanden van ServBay niet juist is ingesteld.
- Oplossing: Controleer of de ServBay-omgevingsvariabelen correct zijn geconfigureerd. Lukt het nog steeds niet, open dan in ServBay de sectie “Instellingen” > “Commandoregeltools” en stel het pad afzonderlijk in voor zowel
zsh
alsbash
, en start daarna de terminal opnieuw.
2. Verbindingsfout of timeout bij verzoeken
- Oorzaak: Mogelijke oorzaken zijn onbereikbare doelsite, netwerkproblemen, firewallblokkades of een foutieve URL.
- Oplossing:
- Controleer op typefouten in de ingevoerde URL.
- Zorg dat je internetverbinding werkt.
- Gebruik je een lokaal ServBay-domein (zoals
servbay.demo
), controleer dan of ServBay draait en de webserver (zoals Caddy/Nginx) actief is. - Kijk of een firewall of beveiligingssoftware uitgaande verbindingen van cURL blokkeert.
- Controleer bij HTTPS of het SSL-certificaat geldig is (zie het SSL-gedeelte hierboven).
3. Download- of uploadproblemen met bestanden
- Oorzaak: Mogelijke fouten in het pad, bestandsrechten, onondersteunde acties door de server of serverfouten.
- Oplossing:
- Controleer of het in het commando opgegeven bestandspad daadwerkelijk bestaat en klopt.
- Zorg dat de gebruiker die ServBay draait, of de huidige terminalgebruiker, lees- en schrijfrechten heeft op het bestand.
- Upload je een bestand naar een lokale ServBay-site, controleer dan of de server uploads toestaat en de doelmap bestaat en beschrijfbaar is.
- Bekijk de foutmeldingen van cURL voor meer specifieke informatie over het probleem.
4. Problemen met SSL-certificaatverificatie
- Oorzaak: Het SSL-certificaat van de doelsite is mogelijk ongeldig, verlopen, het domein komt niet overeen, de keten is incompleet of cURL kan de betreffende CA root-certificaten niet vinden of vertrouwen.
- Oplossing:
- Controleer of het certificaat van de doelsite geldig is.
- Gebruik je een lokaal ServBay-certificaat, volg de instructies in deze of de ServBay SSL-documentatie om met
--cacert
het juiste CA-certificatenpad aan te geven. - Is het een puur testscenario zonder gevoelige gegevens, dan kun je tijdelijk met
--insecure
de validatie uitschakelen (niet aanbevolen in productie).
Samenvatting
cURL is een zeer krachtig en flexibel commandoregelprogramma dat onmisbaar is voor webontwikkelaars. Met de ingebouwde cURL in ServBay kun je binnen je lokale ontwikkelomgeving gemakkelijk verschillende vormen van gegevensoverdracht en netwerktesten uitvoeren, of het nu gaat om eenvoudige HTTP-verzoeken of complexe API-aanroepen en bestandshandelingen. Door het beheersen van zowel de basis- als de geavanceerdere toepassingen van cURL kun je je efficiëntie verhogen en problemen sneller opsporen en oplossen.