Werkt de website? Controleer HTTP met curl op de Mac
Met curl vraagt u een webpagina op vanuit Terminal en leest u de HTTP-statuscode: het antwoord van de webserver op dat verzoek. Zo onderzoekt u een websiteprobleem buiten uw browser, zonder netwerkinstellingen te veranderen.
Bekijk de opdrachten in actie 13 seconden
Druk op afspelen: de opdrachten verschijnen letter voor letter. U kunt pauzeren en het beeld vergroten.
Stap voor stap
Controleer of curl beschikbaar is
Open Terminal en voer de opdracht hieronder uit met Return. U hebt geen beheerdersrechten nodig. curl is een programma voor het versturen van netwerkverzoeken; het wordt met macOS meegeleverd.
curl --versionControle: U ziet de versie van curl en ondersteunde protocollen. Het versienummer kan per Mac verschillen.
Vraag een bekende pagina op
Kopieer de hele opdracht, inclusief de aanhalingstekens en de backslash vóór n. example.com is een neutraal voorbeelddomein. Deze opdracht vraagt de pagina op, verbergt de ontvangen paginainhoud en toont alleen de HTTP-code. Het verzoek stopt uiterlijk na tien seconden.
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://example.comControle: Bij code 200 heeft de server het verzoek succesvol beantwoord. Dat bewijst nog niet dat alle knoppen, scripts of inlogfuncties van een website werken.
Vergelijk met een niet-bestaande pagina
Vraag nu hetzelfde domein op met het oefenpad uit de opdracht hieronder. Alleen het laatste deel van het webadres verandert.
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 10 https://example.com/dit-pad-bestaat-niet-pctip
Dezelfde terminalsessie: dit verzoek krijgt een HTTP-antwoord met code 404. Controle: Bij code 404 is de webserver bereikbaar, maar vindt deze de gevraagde pagina niet. Een 404 is dus iets anders dan een weggevallen internetverbinding.
Onderzoek de website die bij u niet werkt
Vervang in de opdracht van stap 2 alleen de laatste URL door het volledige HTTPS-adres van een gewone openbare pagina. Zet het adres tussen enkele aanhalingstekens als het speciale tekens bevat. Gebruik geen geheime toegangslinks. Noteer de code en een eventuele foutregel.
Controle: U hebt een concrete uitkomst om met de browser te vergelijken. Herhaald proberen is niet nodig: de test herstelt niets en meet alleen dit verzoek op dit moment.
Wat betekenen de onderdelen van de opdracht?
| Onderdeel | Functie |
|---|---|
-sS |
Verbergt de voortgangsmeter, maar houdt foutmeldingen zichtbaar. |
-o /dev/null |
Stuurt de ontvangen paginainhoud naar de lege uitvoer op de Mac; er wordt geen bestand bewaard. |
-w '%{http_code}\n' |
Schrijft na het verzoek de HTTP-code en een nieuwe regel. Neem dit stukje letterlijk over. |
--max-time 10 |
Begrens de totale duur van één poging tot tien seconden. |
https://example.com |
De pagina die wordt opgevraagd. |
De opdrachten gebruiken een normaal GET-verzoek. curl tekent geen webpagina en voert geen JavaScript uit. U krijgt hiermee dus een ander gezichtspunt dan met Chrome of Safari.
Welke vervolgstap past bij de code?
| Uitkomst | Betekenis en volgende stap |
|---|---|
| 200 | Het verzoek is gelukt. Werkt de browser nog niet, onderzoek dan bijvoorbeeld de browser, inlogsessie of scripts van de website. |
| 301 of 302 | De server verwijst naar een ander adres. Deze opdracht volgt die verwijzing niet automatisch; dit is niet op zichzelf een storing. |
| 403 | De server weigert dit verzoek. Een site kan curl anders behandelen dan een gewone browser. |
| 404 | De gevraagde pagina is niet gevonden. Controleer vooral het volledige webadres. |
| 500, 502 of 503 | Een server of tussenschakel meldt een probleem. Opnieuw installeren van uw browser volgt niet uit deze code. |
| 000 met een curl-fout | Er is geen HTTP-code beschikbaar. Lees de foutregel: de naamopzoeking, verbinding, tijdslimiet of certificaatcontrole kan zijn mislukt. |
000 is geen officiële HTTP-statuscode. Ook de afsluitcode van het programma curl is iets
anders dan de HTTP-code: zonder een extra foutoptie kan curl normaal afsluiten nadat het
bijvoorbeeld een 404 heeft ontvangen. Kijk bij deze handmatige proef naar de getoonde uitvoer.
Meldt curl dat de hostnaam niet gevonden kan worden? Ga verder met
DNS onderzoeken met nslookup.
Bij een certificaatfout is het omzeilen van de controle met -k geen oplossing voor de oorzaak.
Een HTTP-code is een momentopname. De voorbeeldwebsite of uw netwerk kan op een ander moment een ander antwoord geven.
