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, можна використовувати 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