506

Variant Also Negotiates

Officieel
Eindpunt onderhandelt zelf

Algemene uitleg van de 506-statuscode

De HTTP-statuscode 506 Variant Also Negotiates is een indicator van een specifiek probleem binnen een server dat optreedt wanneer de server wordt ingezet in een configuratie die gebruikmaakt van zogenaamde transparante inhoudsonderhandeling. Dit type inhoudsonderhandeling wordt gebruikt om verschillende versies van een bron te beheren die kunnen worden geleverd afhankelijk van de vereisten van de aanvragende client (bijvoorbeeld verschillende talen, bestandsindelingen of coderingen).

In wezen betekent de 506 Variant Also Negotiates statuscode dat er sprake is van een verkeerde configuratie op de server die leidt tot een oneindige onderhandelingslus. In plaats van dat de server een specifieke versie van de aangevraagde bron selecteert op basis van de voorkeuren van de client, verwijst de selectie zelf naar een andere onderhandeling. Het resultaat is dat geen van de varianten wordt geleverd, omdat de server verstrikt raakt in een cyclus van verwijzingen, waarbij de ene variant verwijst naar de andere, die op zijn beurt verwijst naar een andere, enzovoort.

Een eenvoudig voorbeeld: een client wil een webpagina in een specifieke taal. De server heeft verschillende taalversies van de website en probeert de meest geschikte versie te selecteren. Als de configuratie van de server echter onjuist is, kan het proces dat de meest geschikte versie moet selecteren, in plaats van een definitieve selectie te maken, verwijzen naar een andere onderhandelingsronde. De 506 Variant Also Negotiates-statuscode geeft aan de client aan dat de server geen geschikte versie van de bron kan leveren vanwege deze interne conflicten of verkeerde configuraties.

In de praktijk wordt deze statuscode zelden gezien, omdat deze uitgaat van een zeer specifieke serverconfiguratie en foutconditie. Om het probleem op te lossen, moet de serverconfiguratie worden herzien en gecorrigeerd om ervoor te zorgen dat inhoudonderhandeling correct kan worden uitgevoerd zonder in een oneindige lus terecht te komen.

Specificatie van de HTTP-statuscode 506

De statuscode 506 Variant Also Negotiates geeft aan dat de server een interne configuratiefout heeft: de gekozen variantbron is geconfigureerd om zelf transparante inhoudsonderhandelingen te voeren, en is daarom geen juist eindpunt in het onderhandelingsproces.

Bron / Citaat van: De 506 Variant Also Negotiates HTTP-statuscode wordt gespecificeerd door sectie 8.1 van RFC2295.

Hoe gooi je een 506-statuscode met PHP?

Om de HTTP-statuscode 506 op een webpagina te gooien, kan de PHP-functie http_response_code worden gebruikt. De syntaxis is als volgt: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Test de HTTP-statuscode 506

Om de HTTP-statuscode (in dit geval 506 Variant Also Negotiates) en andere informatie aan de clientzijde te kunnen weergeven, moet de ontwikkelconsole worden geopend met F12. Navigeer vervolgens naar het tabblad "Netwerk". Nu kan de pagina worden geopend, de website (voorbeeld index.php) moet zichtbaar zijn in het netwerk tabblad. Deze moet worden geselecteerd en vervolgens moet het onderdeel Herder worden geselecteerd. De gebruiker ziet dan het volgende resultaat:

Statuscode 506 Variant Also Negotiates
Overzicht
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
Die: Network
IP-adres: XX.XX.XX.XX
Statuscode 506 Variant Also Negotiates

Hoe maak je je eigen foutpagina voor de statuscode 506?

Uw eigen 506 Variant Also Negotiates-foutpagina maken is relatief eenvoudig met zowel de "Apache" als de "NGINX" webservers.

Apache Webserver

De webserver "Apache" is een van de meest gebruikte webservers op het internet. Om uw eigen 506 Variant Also Negotiates-foutpagina in "Apache" te maken, moet de volgende wijziging worden aangebracht in het volgende bestand.

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

NGINX Webserver

Net als de webserver "Apache" wordt ook "NGINX" veel gebruikt op het internet. Om uw eigen 506 Variant Also Negotiates-foutpagina in "NGINX" te maken, moet de volgende wijziging worden aangebracht in het volgende bestand.

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

Browsercompatibiliteit van de 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

Constanten in programmeertalen

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates

Vermakelijke memes over de HTTP-statuscode 506

Auteur: Tony Brüser
Auteur: Tony Brüser

Tony Brüser is een enthousiaste webontwikkelaar met een voorliefde voor HTTP-statuscodes.

LinkedInGitHub