HTTP Status 503 - Service Unavailable

Der HTTP-Status-Code 503 Service Unavailable signalisiert, dass Server temporär nicht in der Lage ist, Request zu verarbeiten. Typisch für Maintenance, Overload oder Deployments. Response sollte Retry-After Header enthalten. Im Gegensatz zu 500 ist 503 explizit temporär.

Typ

Response-Status-Code

Syntax

Der Status Code wird mit Retry-After Header zurückgegeben.

http
HTTP/1.1 503 Service Unavailable
Retry-After: 120

Direktiven

Der 503 Service Unavailable Status Code wird für temporäre Service-Ausfälle verwendet.

Temporary Unavailability
Server ist temporär nicht verfügbar (Maintenance, Overload, Deployment). Im Gegensatz zu 500 (unexpected Error) ist 503 geplant oder erkannt als temporär.
Retry-After Header
Response sollte Retry-After mit Sekunden oder HTTP-Date enthalten. Gibt Client Hinweis, wann Service wieder verfügbar ist.
Graceful Degradation
Server kann 503 zurückgeben wenn Circuit Breaker opened ist, Dependency unavailable ist oder Load zu hoch ist für Quality-of-Service-Garantie.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 503.

Beispiel 1 Scheduled Maintenance

http
GET /api/data HTTP/1.1
Host: api.example.com

HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Content-Type: application/json

{
  "error": "maintenance",
  "message": "Service undergoing scheduled maintenance",
  "maintenance_window": "2025-10-01 14:00-15:00 UTC",
  "estimated_completion": "2025-10-01T15:00:00Z"
}

Beispiel 2 Server Overload

http
POST /api/orders HTTP/1.1
Host: api.example.com

HTTP/1.1 503 Service Unavailable
Retry-After: 60
Content-Type: application/json

{
  "error": "service_overloaded",
  "message": "Server is temporarily overloaded",
  "current_load": "95%",
  "retry_after_seconds": 60
}

Beispiel 3 Circuit Breaker Open

http
GET /api/external-service HTTP/1.1
Host: api.example.com

HTTP/1.1 503 Service Unavailable
Retry-After: Mon, 01 Oct 2025 15:00:00 GMT
Content-Type: application/json

{
  "error": "dependency_unavailable",
  "message": "External service temporarily unavailable",
  "circuit_breaker": "open",
  "retry_at": "2025-10-01T15:00:00Z"
}

Service Unavailable Flow

503 Service Unavailable während Maintenance Window

Vorteile für die Systemarchitektur

  • Graceful Maintenance: 503 ermöglicht kommunizierte Maintenance Windows. Clients erhalten klares Signal statt Timeout oder Connection-Errors.
  • Load Shedding: Server kann 503 zurückgeben bei Overload. Schützt vor kompletter Überlastung, ermöglicht Partial-Availability statt Full-Outage.
  • Circuit Breaker Integration: Microservices können 503 zurückgeben wenn Dependency unavailable ist. Verhindert Cascade-Failures und ermöglicht Fallback-Logic.

Spezifikation

RFC 9110, Section 15.6.4 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavailable

Weitere Spezifikationen

Retry-After Header, HTTP Status 500 - Internal Server Error, Cache-Control Header