HTTP Status 506 - Variant Also Negotiates

Der HTTP-Status-Code 506 Variant Also Negotiates signalisiert einen Server-Configuration-Error bei Transparent-Content-Negotiation. Server detected circular Reference in Variant-Configuration wo Variant selbst in Negotiation-Process participiert. Rare Status Code aus RFC 2295 Transparent Content Negotiation. Indicates Server-Misconfiguration.

Typ

Response-Status-Code

Syntax

Der Status Code wird zurückgegeben bei circular Content-Negotiation-Configuration.

http
HTTP/1.1 506 Variant Also Negotiates

Direktiven

Der 506 Variant Also Negotiates Status Code wird bei Content-Negotiation-Configuration-Errors verwendet.

Circular Variant Reference
Server-Configuration enthält circular Reference in Transparent-Content-Negotiation-Setup. Variant-Resource ist selbst configured für Negotiation, führt zu infinite Loop. Server kann Best-Variant nicht determinen.
Transparent Negotiation Failure
Bei TCN (Transparent Content Negotiation) verwaltet Server Variant-Selection-Algorithmus. 506 signalisiert dass Algorithm in inconsistent State ist und keine Valid-Variant liefern kann.
Server Misconfiguration
506 ist Server-Configuration-Error, nicht Client-Error. Operations-Team muss Variant-Selection-Configuration korrigieren. Client kann Request nicht erfolgreich wiederholen bis Server-Config fixed ist.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 506.

Beispiel 1 Circular Content Negotiation Reference

http
GET /document HTTP/1.1
Host: www.example.com
Accept: application/pdf, text/html
Negotiate: trans

HTTP/1.1 506 Variant Also Negotiates
Content-Type: application/json

{
  "error": "variant_negotiation_error",
  "message": "Server configuration error in content negotiation",
  "details": "Circular reference detected in variant selection",
  "resource": "/document",
  "issue": "Variant /document.pdf is configured to negotiate, creating infinite loop",
  "contact": "Contact system administrator"
}

Beispiel 2 Transparent Negotiation Loop Detection

http
GET /api/data HTTP/1.1
Host: api.example.com
Accept: application/json, application/xml
Negotiate: 1.0

HTTP/1.1 506 Variant Also Negotiates
Content-Type: text/plain

Error: Transparent Content Negotiation configuration error.

The requested resource is configured with circular variant references:
  - /api/data -> negotiates between /api/data.json and /api/data.xml
  - /api/data.json -> also configured to negotiate

This creates an infinite negotiation loop.
Server administrator must fix variant configuration.

Beispiel 3 Variant Selection Algorithm Failure

http
GET /content/article HTTP/1.1
Host: cdn.example.com
Accept-Language: en, de
Accept: text/html, application/xhtml+xml
Negotiate: trans

HTTP/1.1 506 Variant Also Negotiates
Content-Type: application/json

{
  "status": 506,
  "error": "negotiation_loop",
  "message": "Cannot determine best variant due to configuration error",
  "resource": "/content/article",
  "variants_affected": [
    "/content/article.en.html",
    "/content/article.de.html"
  ],
  "problem": "One or more variants are themselves configured for negotiation",
  "action": "Server misconfiguration - contact support"
}

Transparent Content Negotiation Error Flow

506 Variant Also Negotiates bei circular TCN-Configuration

Vorteile für die Systemarchitektur

  • Configuration Error Detection: 506 macht Transparent-Content-Negotiation-Misconfigurations explicit. Operations-Team kann circular References in Variant-Configuration identifizieren und korrigieren.
  • Client Clarity: Client weiß dass Error server-seitig ist und nicht durch Request-Modification fixbar. Vermeidet unnötige Client-Retry-Attempts bei Configuration-Issues.
  • TCN Protocol Support: 506 ist Teil von RFC 2295 Transparent Content Negotiation. Proper Implementation dieses Status Codes unterstützt Standard-Compliant-TCN-Deployments.

Spezifikation

RFC 2295, Section 8.1 – Transparent Content Negotiation in HTTP https://www.rfc-editor.org/rfc/rfc2295.html#section-8.1

Weitere Spezifikationen

Vary Header, Accept Header