132 HTTP-Statuscodes und -Header
Was 404 und 500 wirklich bedeuten und was Content-Type oder Cache-Control tun — je eine Zeile.
Statuscodes
1xx Information4
Ein Zwischenstand; die eigentliche Antwort folgt.
2xx Erfolg10
Die Anfrage ging durch.
3xx Umleitung7
Woanders hingehen — dauerhaft oder vorübergehend ist der Unterschied.
4xx Client-Fehler29
Das Problem liegt bei der Anfrage; unverändert erneut gesendet scheitert sie wieder.
5xx Server-Fehler11
Das Problem liegt beim Server; ein späterer Versuch lohnt oft.
Header
Request-Header28
Header, die der Browser beim Senden anfügt.
Response-Header30
Header, die der Server bei der Antwort anfügt.
In beide Richtungen13
Header, die auf beiden Seiten auftreten können.
So liest man das
- Die erste Ziffer des Statuscodes trägt die Bedeutung: 4 heißt Anfrage, 5 heißt Server.
- 404 heißt „nicht da", 403 heißt „da, aber nicht für Sie". Wer sie vertauscht, sucht länger.
- Header-Namen unterscheiden keine Groß- und Kleinschreibung — Content-Type und content-type sind dasselbe.
- Cache- und CORS-Probleme hängen meist an einer Header-Zeile, sichtbar im Netzwerk-Tab.
Häufige Fragen
Q. Was unterscheidet 404 von 403?
404 sagt: An dieser Adresse liegt nichts. 403 sagt: Es liegt etwas da, aber nicht für Sie. Manche Server antworten absichtlich mit 404, um die Existenz überhaupt zu verbergen.
Q. Kann ich bei einem 500 etwas tun?
Codes mit 5 sind Sache des Servers, meist hilft nur Warten. Ein 502 oder 504 steckt jedoch zwischen zwei Servern und löst sich oft beim erneuten Versuch kurz darauf.
Q. Wann 301, wann 302?
301, wenn die Adresse endgültig umgezogen ist, 302 bei einem vorübergehenden Umweg. Browser und Suchmaschinen merken sich ein 301 lange — das lässt sich schwer zurücknehmen.
Q. Sind Header-Namen case-sensitiv?
Nein. Content-Type und content-type sind derselbe Header, und seit HTTP/2 werden sie ohnehin klein geschrieben übertragen.
Q. Warum entstehen CORS-Fehler?
Will eine Seite eine Antwort fremder Herkunft lesen, blockt der Browser, sofern der Server es nicht mit Access-Control-Allow-Origin erlaubt. Der Server hat geantwortet — der Browser reicht den Body nur nicht an Ihren Code weiter. Deshalb zeigt der Netzwerk-Tab eine Antwort, die das Skript nicht lesen kann.