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 506 Variant Also Negotiates определен разделом 8.1 из RFC2295.

Как вывести код состояния 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. После этого пользователь увидит следующий результат:

Код состояния 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

Внешние ссылки с дополнительной информацией о коде состояния HTTP 506:

Развлекательные мемы о коде статуса HTTP 506

Автор: Tony Brüser
Автор: Tony Brüser

Тони Брюсер - увлеченный веб-разработчик, склонный к изучению кодов состояния HTTP.

LinkedInGitHub