506

Variant Also Negotiates

Официален
Крайната точка се договаря сама

Общо обяснение на код на състоянието 506

Код на състоянието на HTTP 506 Variant Also Negotiates е индикатор за специфичен проблем в сървъра, който възниква, когато сървърът е разположен в конфигурация, която използва така нареченото прозрачно договаряне на съдържанието. Този вид договаряне на съдържанието се използва за управление на различни версии на даден ресурс, които могат да бъдат доставени в зависимост от изискванията на клиента, подал заявката (напр. различни езици, файлови формати или кодировки).

По същество кодът на състоянието 506 Variant Also Negotiates означава, че в сървъра има неправилна конфигурация, която води до безкраен цикъл на договаряне. Вместо сървърът да избере конкретна версия на заявения ресурс въз основа на предпочитанията на клиента, самият избор препраща към друго договаряне. Резултатът е, че нито един от вариантите не е доставен, тъй като сървърът е попаднал в цикъл от препратки, където един вариант препраща към друг, който на свой ред препраща към друг и т.н.

Прост пример: Клиент иска уеб страница на определен език. Сървърът разполага с различни езикови версии на уебсайта и се опитва да избере най-подходящата версия. Ако обаче конфигурацията на сървъра е неправилна, процесът, който трябва да избере най-подходящата версия, вместо да направи окончателен избор, може да препрати към друг кръг от преговори. Кодът на състоянието 506 Variant Also Negotiates сигнализира на клиента, че сървърът не е в състояние да предостави подходяща версия на ресурса поради тези вътрешни конфликти или неправилна конфигурация.

На практика този код на състоянието се среща рядко, защото предполага много специфична конфигурация на сървъра и състояние на грешка. Решаването на проблема изисква преглед и корекция на конфигурацията на сървъра, за да се гарантира, че договарянето на съдържанието може да се извърши правилно, без да се влиза в безкраен цикъл.

Спецификация на HTTP код на състоянието 506

Кодът на състоянието 506 Variant Also Negotiates показва, че сървърът има грешка във вътрешната конфигурация: избраният ресурс на варианта е конфигуриран да участва сам в прозрачно договаряне на съдържанието и следователно не е подходяща крайна точка в процеса на договаряне.

Източник / Цитат от: Кодът на състоянието 506 Variant Also Negotiates на HTTP е определен в раздел 8.1 на RFC2295.

Как да изхвърлим код на състоянието 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. След това потребителят ще види следния резултат:

Код на състоянието 506 Variant Also Negotiates
Преглед
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Статус: 506 Variant Also Negotiates
Тези: Network
IP адрес: XX.XX.XX.XX
Код на състоянието 506 Variant Also Negotiates

Как да създадете собствена страница за грешка с код на състоянието 506

Създаването на собствена страница за грешка 506 Variant Also Negotiates е сравнително лесно както с уеб сървърите "Apache", така и с "NGINX".

Apache Webserver

Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 506 Variant Also Negotiates в "Apache", трябва да се направи следната промяна в следния файл.

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

NGINX Webserver

Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 506 Variant Also Negotiates в "NGINX", трябва да се направи следната промяна в следния файл.

File: sites-enabled/default
error_page 506 /506.html;
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
Автор: Tony Brüser
Автор: Tony Brüser

Тони Брусер е ентусиазиран уеб разработчик със склонност към HTTP кодовете за състояние.

LinkedInGitHub