506
Variant Also Negotiates
Generell forklaring av 506-statuskoden
HTTP-statuskode 506 Variant Also Negotiates er en indikator på et spesifikt problem på en server som oppstår når serveren er implementert i en konfigurasjon som bruker såkalt transparent innholdsforhandling. Denne typen innholdsforhandling brukes til å håndtere ulike versjoner av en ressurs som kan leveres avhengig av kravene til den forespørrende klienten (f.eks. ulike språk, filformater eller kodinger).
Statuskoden 506 Variant Also Negotiates betyr i hovedsak at det er en feilkonfigurasjon på serveren som fører til en uendelig forhandlingssløyfe. I stedet for at serveren velger en spesifikk versjon av den forespurte ressursen basert på klientens preferanser, henviser selve valget til en ny forhandling. Resultatet er at ingen av variantene blir levert fordi serveren er fanget i en referansesyklus der én variant refererer til en annen, som igjen refererer til en annen, og så videre.
Et enkelt eksempel: En klient ønsker en nettside på et bestemt språk. Serveren har ulike språkversjoner av nettstedet og prøver å velge den versjonen som passer best. Men hvis konfigurasjonen av serveren er feil, kan prosessen som skal velge den best egnede versjonen, i stedet henvise til en ny forhandlingsrunde i stedet for å gjøre et endelig valg. Statuskoden 506 Variant Also Negotiates signaliserer til klienten at serveren ikke er i stand til å levere en passende versjon av ressursen på grunn av slike interne konflikter eller feilkonfigurasjoner.
I praksis ser man sjelden denne statuskoden fordi den forutsetter en svært spesifikk serverkonfigurasjon og feiltilstand. For å løse problemet er det nødvendig å gjennomgå og korrigere serverkonfigurasjonen for å sikre at innholdsforhandlingene kan utføres korrekt uten å gå inn i en uendelig sløyfe.
Spesifikasjon av HTTP-statuskoden 506
Kilde / Sitat fra: 506 Variant Also Negotiates HTTP-statuskoden er spesifisert av seksjon 8.1 i RFC2295.
HTTP-protokoll
Hvordan kaste en 506-statuskode med PHP?
For å kaste HTTP-statuskoden 506 på en nettside kan PHP-funksjonen http_response_code brukes. Syntaksen er som følger: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Test 506 HTTP-statuskoden
For å kunne vise HTTP-statuskoden (i dette tilfellet 506 Variant Also Negotiates) og annen informasjon på klientsiden, må utviklingskonsollen åpnes med F12. Naviger deretter til fanen "Nettverk". Nå kan siden åpnes, nettstedet (eksempel index.php) skal være synlig i nettverksfanen. Dette må velges, og deretter må Herder-delen velges. Brukeren vil da se følgende resultat:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
De: Network
IP-adresse: XX.XX.XX.XX
Slik oppretter du din egen feilside for statuskode 506
Apache Webserver
Webserveren "Apache" er en av de vanligste webserverne på Internett. For å lage din egen 506 Variant Also Negotiates-feilside i "Apache", må følgende endring gjøres i følgende fil.
NGINX Webserver
I likhet med webserveren "Apache" er "NGINX" også mye brukt på Internett. For å lage din egen 506 Variant Also Negotiates-feilside i "NGINX", må følgende endring gjøres i følgende fil.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Nettleserkompatibilitet 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 programmeringsspråk
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates