506
Variant Also Negotiates
Общо обяснение на код на състоянието 506
Код на състоянието на HTTP 506 Variant Also Negotiates е индикатор за специфичен проблем в сървъра, който възниква, когато сървърът е разположен в конфигурация, която използва така нареченото прозрачно договаряне на съдържанието. Този вид договаряне на съдържанието се използва за управление на различни версии на даден ресурс, които могат да бъдат доставени в зависимост от изискванията на клиента, подал заявката (напр. различни езици, файлови формати или кодировки).
По същество кодът на състоянието 506 Variant Also Negotiates означава, че в сървъра има неправилна конфигурация, която води до безкраен цикъл на договаряне. Вместо сървърът да избере конкретна версия на заявения ресурс въз основа на предпочитанията на клиента, самият избор препраща към друго договаряне. Резултатът е, че нито един от вариантите не е доставен, тъй като сървърът е попаднал в цикъл от препратки, където един вариант препраща към друг, който на свой ред препраща към друг и т.н.
Прост пример: Клиент иска уеб страница на определен език. Сървърът разполага с различни езикови версии на уебсайта и се опитва да избере най-подходящата версия. Ако обаче конфигурацията на сървъра е неправилна, процесът, който трябва да избере най-подходящата версия, вместо да направи окончателен избор, може да препрати към друг кръг от преговори. Кодът на състоянието 506 Variant Also Negotiates сигнализира на клиента, че сървърът не е в състояние да предостави подходяща версия на ресурса поради тези вътрешни конфликти или неправилна конфигурация.
На практика този код на състоянието се среща рядко, защото предполага много специфична конфигурация на сървъра и състояние на грешка. Решаването на проблема изисква преглед и корекция на конфигурацията на сървъра, за да се гарантира, че договарянето на съдържанието може да се извърши правилно, без да се влиза в безкраен цикъл.
Спецификация на HTTP код на състоянието 506
Източник / Цитат от: Кодът на състоянието 506 Variant Also Negotiates на HTTP е определен в раздел 8.1 на RFC2295.
Протокол HTTP
Как да изхвърлим код на състоянието 506 с PHP?
За изхвърляне на HTTP статус код 506 на уеб страница може да се използва функцията http_response_code на PHP. Синтаксисът е следният: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Тестване на код 506 на състоянието HTTP
За да можете да показвате кода на състоянието на HTTP (в този случай 506 Variant Also Negotiates) и друга информация от страна на клиента, конзолата за разработка трябва да се отвори с F12. След това преминете към раздела "Мрежа". Сега страницата може да бъде отворена, като уебсайтът (пример index.php) трябва да се вижда в раздела "Мрежа". Той трябва да бъде избран и след това трябва да се избере разделът Herder. След това потребителят ще види следния резултат:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Статус: 506 Variant Also Negotiates
Тези: Network
IP адрес: XX.XX.XX.XX
Как да създадете собствена страница за грешка с код на състоянието 506
Apache Webserver
Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 506 Variant Also Negotiates в "Apache", трябва да се направи следната промяна в следния файл.
NGINX Webserver
Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 506 Variant Also Negotiates в "NGINX", трябва да се направи следната промяна в следния файл.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Съвместимост на кода на състоянието 506 с браузъра
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 |
Константи в езиците за програмиране
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates