Skip to content

Vollständiger Leitfaden zu HTTP-Statuscodes | Ursachen und Lösungen für häufige Fehler

Kategorie:HTTP・Web-Entwicklung
Dieser Artikel ist derzeit nur auf Japanisch verfügbar. Übersetzte Versionen werden schrittweise veröffentlicht.

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

BereichKategorieBedeutung
1xxInformationalAnfrage empfangen und wird bearbeitet
2xxSuccessRequest erfolgreich
3xxRedirectionZusätzliche Aktion erforderlich (Umleitung)
4xxClient ErrorProbleme auf der Clientseite
5xxServer ErrorServerseitiges 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.