506
Variant Also Negotiates
Obecné vysvětlení stavového kódu 506
Stavový kód HTTP 506 Variant Also Negotiates je indikátorem specifického problému v rámci serveru, který nastává, pokud je server nasazen v konfiguraci, která používá tzv. transparentní vyjednávání o obsahu. Tento typ vyjednávání obsahu se používá ke správě různých verzí zdroje, které mohou být doručeny v závislosti na požadavcích požadujícího klienta (např. různé jazyky, formáty souborů nebo kódování).
Stavový kód 506 Variant Also Negotiates v podstatě znamená, že na serveru došlo k chybné konfiguraci, která vede k nekonečné smyčce vyjednávání. Místo toho, aby server vybral konkrétní verzi požadovaného prostředku na základě preferencí klienta, odkazuje samotný výběr na další vyjednávání. Výsledkem je, že žádná z variant není doručena, protože server se ocitl v kruhu odkazů, kdy jedna varianta odkazuje na jinou, ta zase na další atd.
Jednoduchý příklad: Klient chce webovou stránku v určitém jazyce. Server má k dispozici různé jazykové verze webové stránky a snaží se vybrat nejvhodnější verzi. Pokud je však konfigurace serveru nesprávná, proces, který má vybrat nejvhodnější verzi, může místo definitivního výběru odkázat na další kolo jednání. Stavový kód 506 Variant Also Negotiates signalizuje klientovi, že server není schopen dodat vhodnou verzi prostředku z důvodu těchto vnitřních konfliktů nebo chybné konfigurace.
V praxi se s tímto stavovým kódem setkáme jen zřídka, protože předpokládá velmi specifickou konfiguraci serveru a chybový stav. Vyřešení problému vyžaduje revizi a opravu konfigurace serveru, aby bylo zajištěno, že vyjednávání obsahu může být provedeno správně, aniž by došlo k nekonečné smyčce.
Specifikace stavového kódu HTTP 506
Zdroj / Citace z: Stavový kód 506 Variant Also Negotiates HTTP je specifikován v oddílu 8.1 oddílu RFC2295.
Protokol HTTP
Jak vyhodit stavový kód 506 pomocí PHP?
Pro zobrazení stavového kódu HTTP 506 na webové stránce lze použít funkci PHP http_response_code. Syntaxe je následující: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Testování stavového kódu HTTP 506
Aby bylo možné zobrazit stavový kód HTTP (v tomto případě 506 Variant Also Negotiates) a další informace na straně klienta, je třeba otevřít vývojovou konzolu pomocí klávesy F12. Poté přejděte na kartu "Síť". Nyní lze stránku otevřít, webová stránka (příklad index.php) by měla být viditelná na kartě sítě. Ta musí být vybrána a poté musí být vybrána sekce Herder. Uživatel pak uvidí následující výsledek:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Stav: 506 Variant Also Negotiates
Tyto stránky: Network
IP adresa: XX.XX.XX.XX
Jak vytvořit vlastní chybovou stránku pro stavový kód 506
Apache Webserver
Webový server Apache je jedním z nejběžnějších webových serverů na internetu. Chcete-li vytvořit vlastní chybovou stránku 506 Variant Also Negotiates v serveru "Apache", je třeba provést následující změnu v následujícím souboru.
NGINX Webserver
Podobně jako webový server Apache se na internetu hojně používá i NGINX. Chcete-li vytvořit vlastní chybovou stránku 506 Variant Also Negotiates v serveru "NGINX", je třeba provést následující změnu v následujícím souboru.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Kompatibilita stavového kódu 506 s prohlížeči
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 |
Konstanty v programovacích jazycích
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates