506

Variant Also Negotiates

Offiziell
Endpunkt verhandelt selbst

Allgemeine Erklärung des 506-Statuscodes

Der HTTP-Statuscode 506 Variant Also Negotiates ist ein Indikator für ein spezifisches Problem innerhalb eines Servers, das auftritt, wenn der Server in einer Konfiguration eingesetzt ist, die sogenannte transparente Inhaltsverhandlung nutzt. Diese Art der Inhaltsverhandlung wird verwendet, um verschiedenen Versionen einer Ressource zu verwalten, die je nach den Anforderungen des anfragenden Clients (z.B. verschiedene Sprachen, Dateiformate oder Kodierungen) ausgeliefert werden können.

Im Kern bedeutet der 506 Variant Also Negotiates-Statuscode, dass es eine Fehlkonfiguration auf dem Server gibt, die zu einer Endlosschleife der Verhandlung führt. Statt dass der Server eine spezifische Version der angefragten Ressource basierend auf den Präferenzen des Clients auswählt, verweist die Auswahl selbst auf eine weitere Verhandlung. Das Ergebnis ist, dass keine der Varianten ausgeliefert wird, weil der Server in einem Zyklus von Verweisen gefangen ist, bei dem eine Variante auf eine andere verweist, die wiederum auf eine andere verweist, und so weiter.

Ein einfaches Beispiel: Ein Client möchte eine Webseite in einer bestimmten Sprache. Der Server hat verschiedene Sprachversionen der Webseite und versucht, die passendste Version auszuwählen. Wenn jedoch die Konfiguration des Servers fehlerhaft ist, könnte der Prozess, der die passendste Version auswählen soll, stattdessen auf eine weitere Verhandlungsrunde verweisen, anstatt eine definitive Auswahl zu treffen. Der 506 Variant Also Negotiates-Statuscode signalisiert dem Client, dass der Server aufgrund dieser internen Konflikte oder Fehlkonfigurationen nicht in der Lage ist, eine angemessene Version der Ressource auszuliefern.

In der Praxis wird dieser Statuscode selten gesehen, da er eine sehr spezifische Serverkonfiguration und einen Fehlerzustand voraussetzt. Die Lösung des Problems erfordert eine Überprüfung und Korrektur der Serverkonfiguration, um sicherzustellen, dass die Inhaltsverhandlung korrekt durchgeführt werden kann, ohne in eine Endlosschleife zu geraten.

Spezifikation von dem HTTP statuscode 506

Der Statuscode 506 Variant Also Negotiates zeigt an, dass der Server einen internen Konfigurationsfehler hat: Die gewählte Variantenressource ist so konfiguriert, dass sie selbst eine transparente Inhaltsaushandlung vornimmt und daher kein geeigneter Endpunkt im Aushandlungsprozess ist.

Quelle / Zitat von: Spezifiziert wird der 506 Variant Also Negotiates HTTP Status Code durch Abschnitt 8.1 von RFC2295

Wie kann man mit PHP einen 506-Statuscode werfen?

Um auf einer Webseite den HTTP Status Code 506 zu werfen, kann die PHP Funktion http_response_code benutzt werden. Die Syntax sieht wie folgt aus: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Teste den 506 HTTP Status Code

Um die HTTP Status Code (in diesem Fall 506 Variant Also Negotiates) und weitere Informationen clientseitig anzeigen zu können, muss die Entwicklungskonsole mit F12 geöffnet werden. Im Anschluss muss zu der Karteikarte "Netzwerk" navigiert werden. Jetzt kann die Seite geöffnet werden, im Netzwerktab sollte die Webseite (Beispiel index.php) zu sehen sein. Diese muss ausgewählt werden und im Anschluss der Bereich Herder gewählt werden. Hier sieht der Nutzer dann folgendes Ergebnis:

Statuscode 506 Variant Also Negotiates
Überblick
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
Diese: Network
IP-Adresse: XX.XX.XX.XX
Statuscode 506 Variant Also Negotiates

Wie erstellt man eine eigene Fehlerseite für den Statuscode 506

Eine eigene 506 Variant Also Negotiates Fehlerseite zu erstellen ist sowohl mit dem Webserver "Apache" als auch mit dem Webserver "NGINX", relativ leicht.

Apache Webserver

Der Webserver "Apache" gilt zu den meist verbreitetsten Webservern im Internet. Um einen eigene 506 Variant Also Negotiates Fehlerseite in"Apache" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.

File: .htaccess
ErrorDocument 506 /errors/506.html

NGINX Webserver

Ähnlich wie der Webserver "Apache" ist auch "NGINX" im Internet weit verbreitet. Um einen eigene 506 Variant Also Negotiates Fehlerseite in "NGINX" zu erstellen, muss in folgender Datei folgende Änderung durchgeführt werden.

File: sites-enabled/default
error_page 506 /506.html;
location = /506.html {
    root /usr/share/nginx/html;
    internal;
}

Browser-Kompatibilität des 506 Statuscode

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Konstanten in Programmiersprachen

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates
Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser ist ein begeisterter Webentwickler mit einer Vorliebe für HTTP Statuscodes.

LinkedInGitHub