HTTP-Statuscodes & Antwort-Header: Vollständige Referenz
Das Verständnis von HTTP-Statuscodes und Headern ist grundlegend für Webentwickler, SEO-Spezialisten und Systemadministratoren. Dieses Referenzhandbuch deckt die wichtigsten Statuscodes und Header ab, die in der modernen Webkommunikation verwendet werden.
1. HTTP-Statuscodes Kurzübersicht
Statuscodes sind basierend auf der ersten Ziffer in fünf Klassen unterteilt.
1xx: Informationen
- 101 Switching Protocols: Der Server stimmt einem Protokollwechsel zu (z. B. Upgrade auf WebSockets).
2xx: Erfolg
- 200 OK: Die Anfrage war erfolgreich.
- 201 Created: Die Anfrage war erfolgreich und eine neue Ressource wurde erstellt.
- 204 No Content: Die Anfrage war erfolgreich, aber es gibt keinen Inhalt zurückzugeben.
3xx: Umleitung
- 301 Moved Permanently: Die Ressource wurde dauerhaft an eine neue URL verschoben.
- 302 Found: Die Ressource befindet sich vorübergehend an einer anderen URL.
- 304 Not Modified: Wird für Caching verwendet; zeigt an, dass sich die Ressource nicht geändert hat.
4xx: Client-Fehler
- 400 Bad Request: Der Server kann die Anfrage aufgrund eines Client-Fehlers nicht verarbeiten (z. B. fehlerhafte Syntax).
- 401 Unauthorized: Authentifizierung ist erforderlich.
- 403 Forbidden: Der Server versteht die Anfrage, weigert sich jedoch, sie zu autorisieren.
- 404 Not Found: Die angeforderte Ressource konnte nicht gefunden werden.
- 429 Too Many Requests: Der Benutzer hat zu viele Anfragen in einem bestimmten Zeitraum gesendet (Rate Limiting).
5xx: Server-Fehler
- 500 Internal Server Error: Eine generische Fehlermeldung, wenn der Server auf eine unerwartete Bedingung stößt.
- 502 Bad Gateway: Der Server hat als Gateway eine ungültige Antwort vom Upstream-Server erhalten.
- 503 Service Unavailable: Der Server ist derzeit nicht in der Lage, die Anfrage zu bearbeiten (z. B. Wartung oder Überlastung).
- 504 Gateway Timeout: Der Server hat keine rechtzeitige Antwort vom Upstream-Server erhalten.
2. Wichtige HTTP-Antwort-Header
Header liefern Metadaten über die Antwort oder den Server.
Cache-Steuerung: Cache-Control
Steuert, wie der Browser und Zwischen-Caches (wie CDNs) die Ressource speichern.
public, max-age=31536000, immutable: Ideal für versionierte statische Assets (JS, CSS).no-store: Nichts zwischenspeichern (nützlich für sensible Daten).no-cache: Muss vor der Verwendung der zwischengespeicherten Version beim Server validiert werden.
Sicherheit: Strict-Transport-Security (HSTS)
Weist den Browser an, auf die Website nur über HTTPS zuzugreifen.
- Beispiel:
max-age=63072000; includeSubDomains; preload
Sitzungsverwaltung: Set-Cookie
Sendet ein Cookie vom Server an den User-Agent.
- Beispiel:
id=abc; Max-Age=3600; Secure; HttpOnly; SameSite=Lax- HttpOnly: Verhindert, dass JavaScript auf das Cookie zugreift (mildert XSS).
- Secure: Sendet das Cookie nur über HTTPS.
- SameSite: Steuert das seitenübergreifende Cookie-Verhalten (Lax, Strict oder None).
Inhaltsaushandlung: Content-Type & Accept-Encoding
- Content-Type: Gibt den Medientyp der Ressource an (z. B.
text/html,application/json). - Accept-Encoding: Wird vom Client kommuniziert, um unterstützte Komprimierung anzugeben (z. B.
gzip,br).
3. Vergleichstabelle: 301 vs. 302 Umleitung
| Merkmal | 301 Dauerhaft verschoben | 302 Gefunden (Temporär) |
|---|---|---|
| SEO-Auswirkung | Vererbt Link-Equity (PageRank) | Vererbt kein Link-Equity |
| Browser-Caching | Standardmäßig zwischengespeichert | Standardmäßig nicht zwischengespeichert |
| Anwendungsfall | Website-Migration, URL-Änderung | Wartung, temporäre Aktionen |
FAQ: Häufige HTTP-Probleme
F: Warum erhalte ich einen 403 Forbidden-Fehler, obwohl ich angemeldet bin?
A: Dies passiert häufig, wenn dem Benutzer spezifische Berechtigungen/Rollen für diese Ressource fehlen oder wenn ein CSRF-Token-Mismatch vorliegt.
F: Was ist der Unterschied zwischen 401 und 403?
A: 401 Unauthorized bedeutet „Ich weiß nicht, wer Sie sind“ (bitte anmelden). 403 Forbidden bedeutet „Ich weiß, wer Sie sind, aber Sie dürfen hier nicht sein.“
F: Wie behebe ich einen 502 Bad Gateway?
A: Dies ist normalerweise ein serverseitiges Problem. Prüfen Sie, ob die Backend-Anwendung (z. B. Node.js, Python) läuft oder ob der Reverse-Proxy (Nginx/Apache) korrekt konfiguriert ist.
Verwandte Tools
- HTTP-Header-Parser: Überprüfen und analysieren Sie Header von jeder URL.
- Cache-Control-Builder: Generieren Sie optimierte Cache-Richtlinien.
- Statuscode-Prüfer: Überprüfen Sie den Antwortcode für Ihre API oder Website.