Vollständiger Leitfaden zu HTTP-Statuscodes | Ursachen und Lösungen für häufige Fehler
Sie entwickeln eine API und erhalten 502. Plötzlich erscheint 502 in der Produktion. Ob der Redirect 301 oder 302 ist, ändert die SEO-Auswirkung. HTTP-Statuscodes sind die gemeinsame Sprache der Webentwicklung, und ihr korrektes Verständnis ist der erste Schritt zur Fehlerbehebung.
5 Kategorien von Statuscodes
| Bereich | Kategorie | Bedeutung |
|---|---|---|
| 1xx | Informational | Anfrage empfangen und wird bearbeitet |
| 2xx | Success | Request erfolgreich |
| 3xx | Redirection | Zusätzliche Aktion erforderlich (Umleitung) |
| 4xx | Client Error | Probleme auf der Clientseite |
| 5xx | Server Error | Serverseitiges Problem |
Am häufigsten verwendete Codes von Entwicklern
200 OK — Erfolg
Die grundlegendste erfolgreiche Antwort. Die API funktioniert wie erwartet.
301 Moved Permanently — Permanente Umleitung
Wird verwendet, wenn sich die URL dauerhaft ändert. <strong>Für SEO wird die Bewertung der alten URL auf die neue URL übertragen</strong>, was für Site-Migration und HTTPS-Implementierung unerlässlich ist. Google behandelt 301 als 「Signalübertragung」.
<strong>häufiges Problem</strong>: Rückgabe von 302 statt beabsichtigt 301. Apache <code>Redirect</code> ist standardmäßig 302. <code>Redirect 301</code> explizit angeben.
302 Found — Temporäre Umleitung
Temporäre Umleitung. Wird für A/B-Tests und Umweg während der Wartung verwendet. SEO-Bewertung wird nicht übertragen.
304 Not Modified — Cache gültig
Wird zurückgegeben, wenn der Browser eine bedingte Anfrage mit den Headern <code>If-Modified-Since</code> oder <code>If-None-Match</code> sendet und die Ressource nicht geändert wurde. <strong>Der Body wird nicht gesendet</strong>, wodurch Bandbreite gespart wird.
400 Bad Request — Ungültige Anfrage
Der Server kann die Anfrage nicht analysieren. Ursachen: Ungültiges JSON, fehlender erforderlicher Parameter, Content-Type-Nichtübereinstimmung.
# よくあるミス: Content-Type を指定していない
curl -X POST https://api.example.com/users -d '{"name":"Alice"}'
# → 400 (Content-Type: application/json が必要)
# 正しい
curl -X POST https://api.example.com/users \
-H 'Content-Type: application/json' \
-d '{"name":"Alice"}'
401 Unauthorized — Authentifizierung erforderlich
Anmeldedaten fehlen oder sind ungültig. Bearer-Token abgelaufen, API-Schlüssel falsch.
403 Forbidden — Zugriff verweigert
Authentifizierung erfolgreich, aber keine Berechtigung. Zum Beispiel, wenn ein normaler Benutzer auf einen nur für Administratoren reservierten Endpunkt zugreift. Der Unterschied zu 401 ist 「Authentifizierung vorhanden」 vs 「Berechtigung vorhanden」.
404 Not Found — Ressource nicht gefunden
Der bekannteste Fehler. Tippfehler in der URL, gelöschte Seite, fehlerhafte Routing-Konfiguration. Für SEO ist es in einigen Fällen besser, <code>410 Gone</code> zu verwenden, um 「absichtliches Löschen」 zu kennzeichnen.
413 Payload Too Large — Größe überschritten
Häufig bei Datei-Uploads. Überprüfen Sie <code>client_max_body_size</code> von Nginx (Standard 1MB), <code>upload_max_filesize</code> von PHP und API Gateway-Limits.
422 Unprocessable Entity — Validierungsfehler
Die JSON-Syntax ist korrekt, aber geschäftslogisch ungültig (ungültiges E-Mail-Format, leeres erforderliches Feld usw.). REST-API-Validierungsfehler geben dies normalerweise zurück.
429 Too Many Requests — Ratenlimitierung
Zu viele Anfragen in kurzer Zeit gesendet. Die Anzahl der Sekunden zum Warten wird im Header <code>Retry-After</code> angegeben. Lösung: Implementieren Sie exponential backoff.
500 Internal Server Error — Interner Serverfehler
Unbehandelte Ausnahmen, NULL-Referenzen, Fehler in Konfigurationsdateien. <strong>Die gefährlichsten Fehler</strong>. Überprüfen Sie immer die Server-Logs.
502 Bad Gateway — Upstream-Server-Anomalie
Der Reverse-Proxy (Nginx) konnte sich nicht mit dem Upstream PHP-FPM / Node.js / Python WSGI verbinden oder erhielt eine ungültige Antwort. Überprüfen Sie den Neustart des Upstream-Prozesses, Speichermangel oder Socket-Verbindungs-Timeout.
503 Service Unavailable — Dienst vorübergehend nicht verfügbar
Wartung oder Überlastung. Dem Client mit dem Header <code>Retry-After</code> mitteilen, dass er warten soll.
504 Gateway Timeout — Upstream-Timeout
Der Upstream-Server hat nicht rechtzeitig geantwortet. Schwere DB-Abfragen, externe API-Verzögerung. Überprüfen Sie <code>proxy_read_timeout</code> von Nginx.
DevLab Statuscodes-Suchtool
<a href="/ja/tools/http-status/">HTTP-Statuscode-Suchtool</a> ermöglicht sofortige Suche nach Codenummer oder Schlüsselwort (z.B. 「redirect」, 「forbidden」, 「timeout」), und Sie können die Bedeutung, Ursache und Lösung für jeden Code in einer Liste überprüfen. Funktioniert vollständig im Browser, ohne Registrierung erforderlich.
Verwandte Tools: <a href="/ja/check/headers/">HTTP-Header-Validierung</a>, <a href="/ja/check/redirect-chain/">Weiterleitungsketten-Verfolgung</a>, <a href="/ja/check/security/">Sicherheitsdiagnose</a>.
Zusammenfassung
HTTP-Statuscodes sind die gemeinsame Sprache zwischen Server und Client. Häufiges Wissen umfasst den SEO-Einfluss von 301 vs 302, die Unterscheidung der Validierung zwischen 400 vs 422 und die Infrastrukturdiagnose mit 500er-Codes. Bei Fragen zuerst den Statuscode überprüfen und die oben beschriebenen Lösungen anwenden.