506

Variant Also Negotiates

Oficiálna stránka
Koncové zariadenie sa vyjednáva samo

Všeobecné vysvetlenie stavového kódu 506

Stavový kód HTTP 506 Variant Also Negotiates je indikátorom špecifického problému v rámci servera, ktorý sa vyskytuje, keď je server nasadený v konfigurácii, ktorá používa takzvané transparentné vyjednávanie o obsahu. Tento typ vyjednávania o obsahu sa používa na správu rôznych verzií zdroja, ktoré môžu byť doručené v závislosti od požiadaviek požadujúceho klienta (napr. rôzne jazyky, formáty súborov alebo kódovania).

Stavový kód 506 Variant Also Negotiates v podstate znamená, že na serveri existuje nesprávna konfigurácia, ktorá vedie k nekonečnej slučke vyjednávania. Namiesto toho, aby server vybral konkrétnu verziu požadovaného prostriedku na základe preferencií klienta, samotný výber odkazuje na ďalšie vyjednávanie. Výsledkom je, že žiadny z variantov nie je doručený, pretože server je uväznený v cykle odkazov, kde jeden variant odkazuje na iný, ktorý zase odkazuje na iný atď.

Jednoduchý príklad: Klient chce webovú stránku v určitom jazyku. Server má k dispozícii rôzne jazykové verzie webovej stránky a snaží sa vybrať najvhodnejšiu verziu. Ak je však konfigurácia servera nesprávna, proces, ktorý má vybrať najvhodnejšiu verziu, môže namiesto definitívneho výberu odkázať na ďalšie kolo rokovaní. Stavový kód 506 Variant Also Negotiates signalizuje klientovi, že server nie je schopný dodať vhodnú verziu zdroja z dôvodu týchto vnútorných konfliktov alebo nesprávnej konfigurácie.

V praxi sa tento stavový kód vyskytuje zriedkavo, pretože predpokladá veľmi špecifickú konfiguráciu servera a chybový stav. Riešenie tohto problému si vyžaduje preskúmanie a opravu konfigurácie servera, aby sa zabezpečilo, že vyjednávanie obsahu sa môže vykonať správne bez toho, aby sa dostalo do nekonečnej slučky.

Špecifikácia stavového kódu HTTP 506

Stavový kód 506 Variant Also Negotiates znamená, že server má vnútornú konfiguračnú chybu: zvolený zdroj variantu je nakonfigurovaný tak, aby sa sám zapojil do transparentného vyjednávania o obsahu, a preto nie je správnym koncovým bodom v procese vyjednávania.

Zdroj / Citát z: Stavový kód HTTP 506 Variant Also Negotiates je špecifikovaný v časti 8.1 časti RFC2295.

Ako vyhodiť stavový kód 506 pomocou PHP?

Na vyhodenie stavového kódu HTTP 506 na webovej stránke možno použiť funkciu PHP http_response_code. Syntax je nasledovná: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testovanie stavového kódu HTTP 506

Aby bolo možné zobraziť stavový kód HTTP (v tomto prípade 506 Variant Also Negotiates) a ďalšie informácie na strane klienta, je potrebné otvoriť vývojovú konzolu pomocou klávesu F12. Potom prejdite na kartu "Sieť". Teraz je možné otvoriť stránku, webová stránka (príklad index.php) by mala byť viditeľná na karte siete. Tú je potrebné vybrať a potom je potrebné vybrať sekciu Herder. Používateľovi sa potom zobrazí nasledujúci výsledok:

Stavový kód 506 Variant Also Negotiates
Prehľad
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Stav: 506 Variant Also Negotiates
Tieto: Network
IP adresa: XX.XX.XX.XX
Stavový kód 506 Variant Also Negotiates

Ako vytvoriť vlastnú chybovú stránku pre stavový kód 506

Vytvorenie vlastnej chybovej stránky 506 Variant Also Negotiates je pomerne jednoduché v prípade webových serverov Apache aj NGINX.

Apache Webserver

Webový server Apache je jedným z najbežnejších webových serverov na internete. Ak chcete vytvoriť vlastnú chybovú stránku 506 Variant Also Negotiates v serveri "Apache", je potrebné vykonať nasledujúcu zmenu v nasledujúcom súbore.

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

NGINX Webserver

Podobne ako webový server Apache, aj NGINX je na internete široko používaný. Ak chcete vytvoriť vlastnú chybovú stránku 506 Variant Also Negotiates v serveri "NGINX", je potrebné vykonať nasledujúcu zmenu v nasledujúcom súbore.

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 prehliadačom

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

Konštanty v programovacích jazykoch

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ár so záľubou v stavových kódoch HTTP.

LinkedInGitHub