506

Variant Also Negotiates

Virallinen
Päätepiste neuvottelee itse

Yleinen selitys 506-tilakoodista

HTPT-tilakoodi 506 Variant Also Negotiates on osoitus palvelimen erityisestä ongelmasta, joka ilmenee, kun palvelin on otettu käyttöön kokoonpanossa, jossa käytetään niin sanottua läpinäkyvää sisältöneuvottelua. Tämäntyyppistä sisältöneuvottelua käytetään hallitsemaan resurssin eri versioita, jotka voidaan toimittaa pyynnön esittäneen asiakkaan vaatimusten mukaan (esim. eri kielet, tiedostomuodot tai koodaukset).

Keskeisesti 506 Variant Also Negotiates-tilakoodi tarkoittaa, että palvelimessa on virheellinen konfiguraatio, joka johtaa loputtomaan neuvottelusilmukkaan. Sen sijaan, että palvelin valitsisi tietyn version pyydetystä resurssista asiakkaan mieltymysten perusteella, valinta itsessään viittaa uuteen neuvotteluun. Tuloksena on, että yhtään vaihtoehtoa ei toimiteta, koska palvelin on jäänyt kiinni viittausten kehään, jossa yksi vaihtoehto viittaa toiseen, joka puolestaan viittaa toiseen ja niin edelleen.

Yhtenäinen esimerkki: Asiakas haluaa verkkosivun tietyllä kielellä. Palvelimella on eri kieliversioita verkkosivustosta ja se pyrkii valitsemaan sopivimman version. Jos palvelimen konfiguraatio on kuitenkin virheellinen, prosessi, jonka on tarkoitus valita sopivin versio, voi sen sijaan viitata uuteen neuvottelukierrokseen sen sijaan, että se tekisi lopullisen valinnan. Tilakoodi 506 Variant Also Negotiates ilmoittaa asiakkaalle, että palvelin ei pysty toimittamaan resurssin sopivaa versiota näiden sisäisten ristiriitojen tai virheellisten konfiguraatioiden vuoksi.

Käytännössä tätä tilakoodia nähdään harvoin, koska se edellyttää hyvin tiettyä palvelinkonfiguraatiota ja virhetilannetta. Ongelman ratkaiseminen edellyttää palvelinkonfiguraation tarkistamista ja korjaamista sen varmistamiseksi, että sisältöneuvottelut voidaan suorittaa oikein ilman, että päädytään äärettömään silmukkaan.

Palvelimen konfiguraatio on tarkistettava ja korjattava.

HTTP-tilakoodin 506 määrittely

Tilakoodi 506 Variant Also Negotiates osoittaa, että palvelimessa on sisäinen konfigurointivirhe: valittu muunnosresurssi on konfiguroitu osallistumaan itse läpinäkyvään sisältöneuvotteluun, eikä se näin ollen ole oikea neuvotteluprosessin päätepiste.

Lähde / Lainaus: HTTP-tilakoodi 506 Variant Also Negotiates on määritelty 8.1:n RFC2295 kohdassa RFC2295.

Kuinka heittää 506-tilakoodi PHP:llä?

HTTP-tilakoodin 506 heittämiseen verkkosivulle voidaan käyttää PHP-funktiota http_response_code. Syntaksi on seuraava: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testaa HTTP-tilakoodi 506

Jotta HTTP-tilakoodi (tässä tapauksessa 506 Variant Also Negotiates) ja muut tiedot voidaan näyttää asiakaspuolella, kehityskonsoli on avattava F12-näppäimellä. Siirry sitten "Network"-välilehdelle. Nyt sivu voidaan avata, verkkosivuston (esimerkki index.php) pitäisi näkyä verkko-välilehdellä. Tämä on valittava ja sen jälkeen on valittava Herder-osio. Käyttäjä näkee sitten seuraavan tuloksen:

Tilakoodi 506 Variant Also Negotiates
Yleiskatsaus
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Tila: 506 Variant Also Negotiates
Nuo: Network
IP-osoite: XX.XX.XX.XX
Tilakoodi 506 Variant Also Negotiates

Miten luoda oma virhesivu tilakoodille 506?

Oman 506 Variant Also Negotiates-virhesivun luominen on suhteellisen helppoa sekä Apache- että NGINX-verkkopalvelimilla.

Apache Webserver

Verkkopalvelin "Apache" on yksi Internetin yleisimmistä verkkopalvelimista. Jotta voit luoda oman 506 Variant Also Negotiates-virhesivun "Apachessa", seuraavaan tiedostoon on tehtävä seuraava muutos.

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

NGINX Webserver

Samanlainen kuin verkkopalvelin "Apache", "NGINX" on myös laajalti käytössä Internetissä. Jotta voit luoda oman 506 Variant Also Negotiates-virhesivun "NGINX"-palvelimessa, seuraavaan tiedostoon on tehtävä seuraava muutos.

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

Selainyhteensopivuus 506-tilakoodin kanssa

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

Vakiot ohjelmointikielissä

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates

Viihdyttäviä meemejä HTTP-tilakoodista 506

Kirjoittaja: Tony Brüser
Kirjoittaja: Tony Brüser

Tony Brüser on innostunut web-kehittäjä, jolla on mieltymys HTTP-statuskoodeihin.

LinkedInGitHub