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.

Geluidloze terminalopname op de Mac. De homepage geeft 200; het niet-bestaande oefenpad geeft 404. Het procentteken aan het begin van de regel is de prompt en hoort niet bij de opdracht.

Stap voor stap

  1. 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 --version
              

    Controle: U ziet de versie van curl en ondersteunde protocollen. Het versienummer kan per Mac verschillen.

  2. 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.com
              

    Controle: Bij code 200 heeft de server het verzoek succesvol beantwoord. Dat bewijst nog niet dat alle knoppen, scripts of inlogfuncties van een website werken.

  3. 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
              
    curl toont 404 voor het bewust niet-bestaande pad op example.com.
    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.

  4. 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.

Bekijk alle tips