HTTP Status 408 - Request Timeout

Der HTTP-Status-Code 408 Request Timeout signalisiert, dass der Server zu lange auf den vollständigen Request vom Client gewartet hat. Server schließt Connection nach Timeout. Client kann Request wiederholen. Typisch bei langsamen/gestörten Netzwerk-Verbindungen.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben, wenn Request Timeout überschritten wurde.

http
HTTP/1.1 408 Request Timeout
Connection: close

Direktiven

Der 408 Request Timeout Status Code wird für Client-seitige Request Timeouts verwendet.

Client Too Slow
Server wartet zu lange darauf, dass Client vollständigen Request sendet (Headers + Body). Nach Timeout schließt Server Connection mit 408 Response.
Idle Connection Timeout
Kann auch für keep-alive Connections verwendet werden, wo Client zu lange keine Request sendet. Server räumt idle Connections auf.
Connection Close
Response sollte Connection: close Header enthalten. Server wird Connection nach Response schließen. Client muss neue Connection für Retry öffnen.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 408.

Beispiel 1 Slow Request Body Upload

http
POST /api/upload HTTP/1.1
Host: api.example.com
Content-Type: multipart/form-data
Content-Length: 104857600
Expect: 100-continue

[Client sendet Daten extrem langsam, Server Timeout nach 60s]

HTTP/1.1 408 Request Timeout
Connection: close
Content-Type: application/json

{
  "error": "request_timeout",
  "message": "Request body transmission too slow, timeout after 60 seconds"
}

Beispiel 2 Idle Keep-Alive Connection

http
HTTP/1.1 408 Request Timeout
Connection: close
Keep-Alive: timeout=15

{
  "error": "connection_timeout",
  "message": "No request received within keep-alive timeout"
}

Beispiel 3 Header Transmission Timeout

http
[Client sendet Request Header sehr langsam]

HTTP/1.1 408 Request Timeout
Connection: close
Retry-After: 60

{
  "error": "header_timeout",
  "message": "Request headers not received within 30 seconds"
}

Request Timeout Flow

408 Request Timeout bei langsamer Client Request Transmission

Vorteile für die Systemarchitektur

  • Resource Protection: Server kann Connections von langsamen/stalled Clients schließen. Verhindert Resource-Exhaustion durch akkumulierte idle/slow Connections.
  • DoS Prevention: Schutz gegen Slowloris-artige Attacks, wo Attacker viele Connections öffnet und extrem langsam Daten sendet. Timeout begrenzt Connection-Lifetime.
  • Connection Pool Management: Load Balancer und Server können Connection Pools effizient managen. 408 ermöglicht proaktives Cleanup statt indefinite Waits.

Spezifikation

RFC 9110, Section 15.5.9 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-408-request-timeout

Weitere Spezifikationen

Connection Header, Keep-Alive Header