Kodokon kodokon.com

HTTP im Klartext: Methoden und Statuscodes

Lies eine echte Anfrage und eine echte Antwort und lerne, was 200, 404 und 500 wirklich bedeuten.

8 Min. · 3 Fragen

Diese Lektion in Kodokon öffnen

HTTP (HyperText Transfer Protocol) ist die Sprache, die Browser und Server miteinander sprechen. Gute Nachricht: Das ist kein unverständliches Binärformat, sondern lesbarer Text. Eine Anfrage passt in ein paar Zeilen: ein Verb, eine Adresse und dann Header (Kopfzeilen), die den Zusammenhang ergänzen (welche Sprache ich bevorzuge, welchen Browser ich benutze). Die Antwort hat denselben Aufbau: ein Zahlencode, Header, eine Leerzeile und dann der Inhalt.

BASH
curl -i https://example.com

HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400

<!doctype html>
<html>
...
Die Option -i sagt curl, dass es auch die Header der Antwort ausgeben soll, nicht nur den Inhalt.

Das Verb am Anfang einer Anfrage nennt man Methode, und es kündigt deine Absicht an. GET fordert einfach an, eine Ressource zu lesen: Genau das macht der Browser jedes Mal, wenn du eine Seite öffnest. POST schickt Daten an den Server, typischerweise wenn du ein Anmeldeformular abschickst. PUT aktualisiert einen vorhandenen Eintrag, und DELETE verlangt, dass er gelöscht wird. Konzentriere dich auf die ersten beiden: Sie machen die überwältigende Mehrheit des gesamten Verkehrs aus.

BASH
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/post
Eine POST-Anfrage: -d liefert die Daten, die geschickt werden, genau wie es ein Formular tun würde.

Jede Antwort beginnt mit einem dreistelligen Statuscode. Schon die erste Ziffer verrät dir die Lage. Codes im Bereich 2xx bedeuten Erfolg: 200 heißt "hier ist, worum du gebeten hast". Die 3xx-Codes sind Weiterleitungen: 301 heißt "diese Seite ist umgezogen, geh stattdessen dorthin". Die 4xx-Codes weisen auf einen Fehler auf der Client-Seite hin: 404 (Ressource nicht gefunden), 403 (Zugriff verboten), 401 (du musst dich anmelden). Die 5xx-Codes weisen auf eine Panne auf der Server-Seite hin: 500 ist der klassische interne Fehler.

BASH
curl -I https://example.com/this-page-does-not-exist

HTTP/2 404
content-type: text/html; charset=UTF-8
Die Option -I (großes i) fordert nur die Header an: perfekt, um einen Statuscode zu prüfen.

Wissenscheck

Stelle sicher, dass du die wichtigsten Punkte dieser Lektion behalten hast.

  1. Was bedeutet ein Statuscode 404?
    • Der Server ist abgestürzt
    • Die angeforderte Ressource ist unter dieser Adresse nicht zu finden
    • Die Anfrage war erfolgreich
  2. Welche Code-Familie signalisiert ein Problem auf der Server-Seite?
    • Die 2xx
    • Die 3xx
    • Die 4xx
    • Die 5xx
  3. Welche HTTP-Methode benutzt der Browser, um einfach eine Seite zu lesen?
    • GET
    • POST
    • DELETE