HTTP Status 505 - HTTP Version Not Supported

Der HTTP-Status-Code 505 HTTP Version Not Supported signalisiert, dass Server die im Request verwendete HTTP-Protocol-Version nicht unterstützt oder verarbeiten kann. Typisch wenn Client neuere HTTP-Version verwendet (z.B. HTTP/3) als Server implementiert, oder Legacy-Client veraltete Version sendet. Server kann Request nicht verarbeiten wegen Protocol-Incompatibility.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben bei nicht unterstützter HTTP-Version.

http
HTTP/1.1 505 HTTP Version Not Supported

Direktiven

Der 505 HTTP Version Not Supported Status Code wird bei HTTP-Version-Incompatibility verwendet.

Protocol Version Mismatch
Server unterstützt HTTP-Version im Request nicht. Client sendet z.B. HTTP/2.0-Request an HTTP/1.1-only-Server, oder verwendet experimentelle HTTP-Version-Extension die Server nicht implementiert.
Legacy Version Rejection
Server kann veraltete HTTP-Versions ablehnen aus Security-Reasons (z.B. HTTP/0.9 rejection). Modern-Server unterstützen nur HTTP/1.1+ und returnen 505 für ältere Versions.
Version Upgrade Required
Im Gegensatz zu 426 Upgrade Required (wo Upgrade optional ist), signalisiert 505 dass aktuelle Version fundamental incompatible ist. Client muss supported Version verwenden oder kann Request nicht durchführen.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 505.

Beispiel 1 Future HTTP Version Not Implemented

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

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: application/json

{
  "error": "http_version_not_supported",
  "message": "Server does not support HTTP/4.0",
  "requested_version": "HTTP/4.0",
  "supported_versions": ["HTTP/1.1", "HTTP/2", "HTTP/3"],
  "recommendation": "Use HTTP/2 or HTTP/1.1"
}

Beispiel 2 Legacy HTTP/0.9 Rejection

http
GET /index.html

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/plain

Error: HTTP/0.9 is not supported by this server.
This server requires HTTP/1.1 or newer.

Please upgrade your HTTP client to a modern version that supports:
- HTTP/1.1 (RFC 9112)
- HTTP/2 (RFC 9113)
- HTTP/3 (RFC 9114)

Beispiel 3 Experimental Protocol Extension Unsupported

http
POST /api/submit HTTP/1.1-custom-extension
Host: api.example.com
Content-Type: application/json

{"data": "test"}

HTTP/1.1 505 HTTP Version Not Supported
Content-Type: application/json

{
  "status": 505,
  "error": "unsupported_protocol_extension",
  "message": "Custom HTTP protocol extensions are not supported",
  "received": "HTTP/1.1-custom-extension",
  "supported": ["HTTP/1.1", "HTTP/2"],
  "details": "Server only supports standard HTTP versions"
}

HTTP Version Compatibility Check Flow

505 HTTP Version Not Supported bei Protocol-Version-Mismatch

Vorteile für die Systemarchitektur

  • Protocol Compatibility Clarity: 505 macht explicit klar dass Server Request-HTTP-Version nicht unterstützt. Client kann zu supported Version downgrade oder Server-Upgrade anfordern.
  • Security Policy Enforcement: Server können legacy HTTP-Versions aus Security-Reasons ablehnen. 505 signalisiert dass Client moderneres Protocol verwenden muss.
  • Clear Error Distinction: 505 unterscheidet Protocol-Incompatibility von anderen Server-Errors (500, 501, 503). Operations-Teams können gezielt Protocol-Support-Issues identifizieren und fixen.

Spezifikation

RFC 9110, Section 15.6.6 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-505-http-version-not-suppor

Weitere Spezifikationen

Upgrade Header, HTTP Status 500 - Internal Server Error