506

Variant Also Negotiates

Ametlik
Lõpp-punkt peab ise läbirääkimisi

Üldine selgitus 506 staatuskoodi kohta

HTTP olekukood 506 Variant Also Negotiates on näitaja spetsiifilisest probleemist serveris, mis tekib siis, kui server on kasutusel konfiguratsioonis, mis kasutab nn läbipaistvat sisuläbirääkimist. Seda tüüpi sisuläbirääkimisi kasutatakse selleks, et hallata ressursi erinevaid versioone, mida saab edastada sõltuvalt taotluse esitanud kliendi nõuetest (nt erinevad keeled, failiformaadid või kodeeringud).

Sisuliselt tähendab staatuskood 506 Variant Also Negotiates, et serveris on vale konfiguratsioon, mis viib läbirääkimiste lõputu tsükkelini. Selle asemel, et server valiks kliendi eelistuste põhjal konkreetse versiooni taotletud ressursist, viitab valik ise uuele läbirääkimisele. Tulemuseks on see, et ühtegi varianti ei toimetata kohale, sest server on sattunud viidete tsüklisse, kus üks variant viitab teisele, mis omakorda viitab teisele ja nii edasi.

Ühtne näide: klient soovib veebilehte teatavas keeles. Serveril on veebilehe erinevad keeleversioonid ja ta püüab valida kõige sobivama versiooni. Kui aga serveri konfiguratsioon on vale, võib protsess, mis peaks valima kõige sobivama versiooni, selle asemel, et teha lõplik valik, viidata hoopis teisele läbirääkimisvoorule. Staatusekood 506 Variant Also Negotiates annab kliendile märku, et server ei suuda nende sisemiste konfliktide või vigaste konfiguratsioonide tõttu pakkuda ressursi sobivat versiooni.

Praktikas näeb seda staatuskoodi harva, sest see eeldab väga spetsiifilist serveri konfiguratsiooni ja veaolukorda. Probleemi lahendamine nõuab serveri konfiguratsiooni läbivaatamist ja parandamist, et tagada, et sisuläbirääkimisi saab korrektselt läbi viia ilma lõpmatusse tsüklisse sattumata.

HTTP staatuskoodi 506 täpsustamine

Staatuskood 506 Variant Also Negotiates näitab, et serveril on sisemine konfiguratsiooniviga: valitud variandi ressurss on konfigureeritud osalema läbipaistvas sisuläbirääkimises ja ei ole seetõttu läbirääkimiste protsessi nõuetekohane lõpp-punkt.

Allikas / Tsitaat: HTTP-kood 506 Variant Also Negotiates on määratletud jaotises 8.1 jaotises RFC2295.

Kuidas PHP-ga 506 staatuskoodi visata?

Veebilehel HTTP-koodi 506 kuvamiseks võib kasutada PHP-funktsiooni http_response_code. Süntaks on järgmine: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testige HTTP-koodi 506

Selleks, et kuvada HTTP staatuskoodi (antud juhul 506 Variant Also Negotiates) ja muud teavet kliendi poolel, tuleb arenduskonsool avada klahviga F12. Seejärel navigeerige vahekaardile "Network". Nüüd saab lehekülje avada, veebileht (näiteks index.php) peaks olema nähtav võrgu vahekaardil. See tuleb valida ja seejärel tuleb valida Herder sektsioon. Seejärel näeb kasutaja järgmist tulemust:

Staatuse kood 506 Variant Also Negotiates
Ülevaade
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Staatus: 506 Variant Also Negotiates
Need: Network
IP-aadress: XX.XX.XX.XX
Staatuse kood 506 Variant Also Negotiates

Kuidas luua oma vealehekülg staatuskoodi 506 jaoks

Oma 506 Variant Also Negotiates vealehe loomine on nii "Apache" kui ka "NGINX" veebiserverite puhul suhteliselt lihtne.

Apache Webserver

Veebiserver "Apache" on üks levinumaid veebiservereid Internetis. Oma 506 Variant Also Negotiates vealehe loomiseks "Apache'is" tuleb teha järgmine muudatus järgmises failis.

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

NGINX Webserver

Sarnaselt veebiserverile "Apache" on ka "NGINX" internetis laialdaselt kasutusel. Oma 506 Variant Also Negotiates vealehe loomiseks "NGINXis" tuleb teha järgmine muudatus järgmises failis.

File: sites-enabled/default
error_page 506 /506.html;
location = /506.html {
    root /usr/share/nginx/html;
    internal;
}

506 staatuskoodi brauserite ühilduvus

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

Konstandid programmeerimiskeeltes

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates
Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser on entusiastlik veebiarendaja, kellel on kalduvus HTTP staatuskoodide suhtes.

LinkedInGitHub