506
Variant Also Negotiates
Generel forklaring af 506-statuskoden
HTTP-statuskode 506 Variant Also Negotiates er en indikator for et specifikt problem i en server, der opstår, når serveren er implementeret i en konfiguration, der bruger såkaldt transparent indholdsforhandling. Denne type indholdsforhandling bruges til at administrere forskellige versioner af en ressource, der kan leveres afhængigt af kravene fra den anmodende klient (f.eks. forskellige sprog, filformater eller kodninger).
I bund og grund betyder statuskoden 506 Variant Also Negotiates, at der er en fejlkonfiguration på serveren, der fører til en uendelig forhandlingsløkke. I stedet for at serveren vælger en bestemt version af den ønskede ressource baseret på klientens præferencer, henviser selve valget til endnu en forhandling. Resultatet er, at ingen af varianterne bliver leveret, fordi serveren er fanget i en cyklus af referencer, hvor en variant refererer til en anden, som igen refererer til en anden osv.
Et simpelt eksempel: En klient ønsker en webside på et bestemt sprog. Serveren har forskellige sprogversioner af hjemmesiden og forsøger at vælge den bedst egnede version. Men hvis konfigurationen af serveren er forkert, kan den proces, der skal vælge den bedst egnede version, i stedet henvise til en ny forhandlingsrunde i stedet for at foretage et endeligt valg. Statuskode 506 Variant Also Negotiates signalerer til klienten, at serveren ikke er i stand til at levere en passende version af ressourcen på grund af disse interne konflikter eller fejlkonfigurationer.
I praksis ses denne statuskode sjældent, fordi den forudsætter en meget specifik serverkonfiguration og fejltilstand. At løse problemet kræver en gennemgang og korrektion af serverkonfigurationen for at sikre, at indholdsforhandling kan udføres korrekt uden at gå ind i en uendelig løkke.
Specifikation af HTTP-statuskode 506
Kilde / citat fra: HTTP-statuskoden 506 Variant Also Negotiates er specificeret i afsnit 8.1 i RFC2295.
HTTP-protokol
Hvordan får man en 506-statuskode med PHP?
Hvis du vil have HTTP-statuskoden 506 på en webside, kan du bruge PHP-funktionen http_response_code. Syntaksen er som følger: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Test 506 HTTP-statuskoden
For at kunne vise HTTP-statuskoden (i dette tilfælde 506 Variant Also Negotiates) og andre oplysninger på klientsiden skal udviklingskonsollen åbnes med F12. Naviger derefter til fanen "Network" (netværk). Nu kan siden åbnes, hjemmesiden (eksempel index.php) skal være synlig i fanen netværk. Denne skal vælges, og derefter skal Herder-sektionen vælges. Brugeren vil derefter se følgende resultat:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
Disse: Network
IP-adresse: XX.XX.XX.XX
Sådan opretter du din egen fejlside for statuskode 506
Apache Webserver
Webserveren "Apache" er en af de mest almindelige webservere på internettet. For at oprette din egen 506 Variant Also Negotiates-fejlside i "Apache" skal du foretage følgende ændring i følgende fil.
NGINX Webserver
I lighed med webserveren "Apache" er "NGINX" også meget udbredt på internettet. For at oprette din egen 506 Variant Also Negotiates-fejlside i "NGINX" skal du foretage følgende ændring i følgende fil.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Browserkompatibilitet for 506-statuskoden
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 |
Konstanter i programmeringssprog
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates