HTTP
Die wichtigsten Befehle zum Merken
curl -i URL— eine Ressource samt Antwortheadern abrufen.curl -I URL— mit HEAD Metadaten ohne Antwortbody anfordern.
Befehle und Optionen
| Option | Bedeutung |
|---|---|
-i |
Header zusätzlich zum heruntergeladenen Body anzeigen. |
-I |
HTTP HEAD verwenden, nicht GET mit verborgener Ausgabe. |
--max-time 10 |
Jeden Transfer auf zehn Sekunden begrenzen. |
Die Beispiele verwenden eine öffentliche Beispieldomain über HTTPS mit aktiver Zertifikatsprüfung.
Die entscheidenden Konzepte
1. Eine Anfrage beschreibt eine Absicht an einer Ressource
HTTP ist ein Anwendungsprotokoll aus Anfragen und Antworten. Eine Anfrage nennt Ziel und Methode. GET ruft eine Repräsentation ab. HEAD verlangt entsprechende Metadaten ohne Übertragung des Antwortinhalts. Andere Methoden formulieren andere Absichten.
Eine URL identifiziert Ziel und Ressource. Eine Ressource ist ein konzeptionelles Objekt, nicht zwingend eine Datei auf einem Datenträger. Der Server kann die Antwort dynamisch erzeugen.
2. Der Status beschreibt das Protokollergebnis
Antworten enthalten einen Statuscode. Grob steht 2xx für Erfolg, 3xx für Umleitung, 4xx für Probleme der Clientanfrage und 5xx für serverseitige Fehlerbehandlung. Der genaue Code ist wichtiger als die Klasse allein.
200 bedeutet Erfolg dieser HTTP-Anfrage am Endpunkt. Das bestätigt nicht automatisch jede fachliche Aktion oder Abhängigkeit. Ein Verbindungsfehler vor einer Antwort liefert keinen HTTP-Status des Zielservers.
3. Header erklären den Inhalt
Header tragen Metadaten und Steuerinformationen. Content-Type beschreibt das Format. Content-Length nennt, wenn vorhanden, eine Bytelänge nach den Framing-Regeln. Location kann ein Umleitungsziel angeben.
Der Body enthält etwa HTML, JSON oder Binärdaten. Nicht jede Antwort besitzt einen. HEAD kann die Länge einer GET-Repräsentation ankündigen, ohne einen Body zu übertragen. Interpretiere Header deshalb zusammen mit Methode und Status.
4. HTTP-Semantik und Transport sind getrennte Ebenen
HTTP/1.1, HTTP/2 und HTTP/3 verwenden verwandte Methoden, Statuscodes und Header, aber verschiedene Übertragungsformate und Transporte. HTTPS schützt die Verbindung. Es macht nicht jede Seite vertrauenswürdig oder jede Aktion autorisiert.
Cookies, Tokens und serverseitiger Zustand ermöglichen Sitzungen über HTTP-Austausche. Curl unterscheidet sich außerdem vom Browser: Es führt nicht automatisch JavaScript aus und lädt nicht jede im HTML referenzierte Ressource.
Ein kleines Beispiel
Optional: Führe beide Befehle mit curl aus. Sie senden zuerst GET, dann HEAD.
curl -i --max-time 10 https://example.com/
curl -I --max-time 10 https://example.com/
Vergleiche Status und Header vor dem GET-Body. Die zweite Antwort sollte auch bei vorhandenem Content-Length keinen Body enthalten. Metadaten können sich zwischen den Anfragen ändern.
Status, Header, Protokollversion und Inhalt variieren. Umleitungen werden hier nicht automatisch verfolgt; prüfe Location. Curl kann nach einem HTTP-Fehlerstatus erfolgreich enden, weil gelungener Transport und Anwendungserfolg verschieden sind.
Timeout oder TLS-Fehler können vor jeder Antwort auftreten. Lokal wird nichts installiert oder verändert; Aufräumen ist nicht erforderlich.
Merke dir: Lies Methode, Status, Header und Body gemeinsam. Abgeschlossener Transfer und erfolgreiche Anwendungsaktion sind verschiedene Aussagen.