506
Variant Also Negotiates
Общее объяснение кода состояния 506
Код состояния HTTP 506 Variant Also Negotiates - это индикатор специфической проблемы на сервере, которая возникает, когда сервер развернут в конфигурации, использующей так называемое прозрачное согласование содержимого. Этот тип согласования содержимого используется для управления различными версиями ресурса, которые могут быть предоставлены в зависимости от требований запрашивающего клиента (например, различные языки, форматы файлов или кодировки).
По сути, код состояния 506 Variant Also Negotiates означает, что на сервере произошла ошибка в конфигурации, которая приводит к бесконечному циклу согласования. Вместо того чтобы сервер выбирал конкретную версию запрашиваемого ресурса, основываясь на предпочтениях клиента, сам выбор приводит к другим переговорам. В результате ни один из вариантов не доставляется, поскольку сервер попадает в цикл ссылок, где один вариант ссылается на другой, который, в свою очередь, ссылается на другой, и так далее.
Простой пример: клиент хочет получить веб-страницу на определенном языке. На сервере имеются различные языковые версии сайта, и он пытается выбрать наиболее подходящую версию. Однако если конфигурация сервера неверна, процесс, который должен выбрать наиболее подходящую версию, может вместо окончательного выбора обратиться к другому раунду переговоров. Код состояния 506 Variant Also Negotiates сигнализирует клиенту о том, что сервер не может предоставить подходящую версию ресурса из-за этих внутренних конфликтов или неправильной конфигурации.
На практике этот код состояния встречается редко, поскольку он предполагает очень специфическую конфигурацию сервера и условия ошибки. Решение проблемы требует пересмотра и исправления конфигурации сервера, чтобы убедиться, что согласование содержимого может быть выполнено корректно, без попадания в бесконечный цикл.
На практике этот код состояния встречается редко, поскольку он предполагает очень специфическую конфигурацию сервера и условие ошибки.
Спецификация кода состояния HTTP 506
Источник / Цитаты из: Код состояния HTTP 506 Variant Also Negotiates определен разделом 8.1 из RFC2295.
Протокол HTTP
Как вывести код состояния 506 с помощью PHP?
Чтобы бросить на веб-страницу код статуса HTTP 506, можно использовать PHP-функцию http_response_code. Синтаксис выглядит следующим образом: 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