506

Variant Also Negotiates

Oficiální stránky
Koncové zařízení vyjednává samo

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

Stavový kód 506 Variant Also Negotiates označuje, že server má vnitřní chybu konfigurace: vybraný zdroj varianty je nakonfigurován tak, aby se sám zapojil do transparentního vyjednávání o obsahu, a proto není správným koncovým bodem v procesu vyjednávání.

Zdroj / Citace z: Stavový kód 506 Variant Also Negotiates HTTP je specifikován v oddílu 8.1 oddílu RFC2295.

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:

Stavový kód 506 Variant Also Negotiates
Přehled
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Stav: 506 Variant Also Negotiates
Tyto stránky: Network
IP adresa: XX.XX.XX.XX
Stavový kód 506 Variant Also Negotiates

Jak vytvořit vlastní chybovou stránku pro stavový kód 506

Vytvoření vlastní chybové stránky 506 Variant Also Negotiates je na webových serverech Apache i NGINX poměrně snadné.

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.

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

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.

File: sites-enabled/default
error_page 506 /506.html;
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
Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser je nadšený webový vývojář se zálibou ve stavových kódech HTTP.

LinkedInGitHub