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
Lähde / Lainaus: HTTP-tilakoodi 506 Variant Also Negotiates on määritelty 8.1:n RFC2295 kohdassa RFC2295.
HTTP-protokolla
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:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Tila: 506 Variant Also Negotiates
Nuo: Network
IP-osoite: XX.XX.XX.XX
Miten luoda oma virhesivu tilakoodille 506?
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.
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.
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