506
Variant Also Negotiates
Általános magyarázat a 506 státuszkódra
Az 506 Variant Also Negotiates-os HTTP státuszkód a kiszolgálón belüli speciális probléma jelzője, amely akkor jelentkezik, ha a kiszolgálót olyan konfigurációban telepítik, amely úgynevezett átlátható tartalomtárgyalást használ. Ez a fajta tartalomtárgyalás egy erőforrás különböző verzióinak kezelésére szolgál, amelyek a kérelmező ügyfél igényeitől függően (pl. különböző nyelvek, fájlformátumok vagy kódolások) szállíthatók.
Az 506 Variant Also Negotiates-os állapotkód lényegében azt jelenti, hogy a kiszolgálón olyan hibás konfiguráció van, amely végtelen tárgyalási ciklushoz vezet. Ahelyett, hogy a kiszolgáló az ügyfél preferenciái alapján kiválasztaná a kért erőforrás egy adott verzióját, maga a kiválasztás egy újabb tárgyalásra utal. Az eredmény az, hogy egyik változat sem kerül kézbesítésre, mert a kiszolgáló a hivatkozások körforgásába kerül, ahol az egyik változat egy másikra hivatkozik, amely viszont egy másikra hivatkozik, és így tovább.
Egy egyszerű példa: Egy ügyfél egy weboldalt szeretne egy adott nyelven. A kiszolgálónak különböző nyelvi változatai vannak a weboldalról, és megpróbálja kiválasztani a legmegfelelőbb változatot. Ha azonban a szerver konfigurációja hibás, akkor a folyamat, amelynek ki kellene választania a legmegfelelőbb verziót, ahelyett, hogy végleges választást hozna, újabb tárgyalási körre hivatkozhat. Az 506 Variant Also Negotiates-os állapotkód azt jelzi az ügyfélnek, hogy a kiszolgáló nem tudja az erőforrás megfelelő verzióját szállítani az ilyen belső konfliktusok vagy hibás konfigurációk miatt.
A gyakorlatban ez az állapotkód ritkán fordul elő, mivel nagyon speciális szerverkonfigurációt és hibaállapotot feltételez. A probléma megoldása a kiszolgáló konfiguráció felülvizsgálatát és korrekcióját igényli annak biztosítása érdekében, hogy a tartalomtárgyalást végtelen ciklusba kerülés nélkül, helyesen lehessen végrehajtani.
Megoldása a kiszolgáló konfigurációjának felülvizsgálatát és korrekcióját igényli.
A 506-es HTTP státuszkód megadása
Forrás / Idézet: A 506 Variant Also Negotiates HTTP státuszkódot a 8.1 szakasz RFC2295 szakasza határozza meg.
HTTP protokoll
Hogyan dobhatok 506 státuszkódot PHP-vel?
A 506-es HTTP státuszkódot egy weboldalon a PHP http_response_code függvényével adhatjuk meg. A szintaxis a következő: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
A 506 HTTP státuszkód tesztelése
Ahhoz, hogy a HTTP státuszkódot (ebben az esetben 506 Variant Also Negotiates) és egyéb információkat meg tudjon jeleníteni az ügyféloldalon, a fejlesztői konzolt az F12 billentyűvel kell megnyitni. Ezután navigáljon a "Hálózat" fülre. Most már megnyitható az oldal, a weboldalnak (példa index.php) láthatónak kell lennie a hálózat fülön. Ezt ki kell választani, majd a Herder szekciót kell kiválasztani. A felhasználó ezután a következő eredményt fogja látni:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Állapot: 506 Variant Also Negotiates
Azok: Network
IP-cím: XX.XX.XX.XX
Hogyan hozzon létre saját hibaoldalt a 506-es státuszkódhoz?
Apache Webserver
Az "Apache" webszerver az egyik legelterjedtebb webszerver az interneten. A saját 506 Variant Also Negotiates-es hibaoldal létrehozásához az "Apache"-ban a következő változtatást kell elvégezni a következő fájlban.
NGINX Webserver
Az "Apache" webszerverhez hasonlóan az "NGINX" is széles körben használatos az interneten. A saját 506 Variant Also Negotiates-es hibaoldal létrehozásához az "NGINX"-ben a következő változtatást kell elvégezni az alábbi fájlban.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
A 506 státuszkód böngésző kompatibilitása
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 |
Állandók a programozási nyelvekben
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates