506

Variant Also Negotiates

Oficjalny
Punkt końcowy negocjuje się sam

Ogólne wyjaśnienie kodu statusu 506

Kod statusu HTTP 506 Variant Also Negotiates jest wskaźnikiem określonego problemu w serwerze, który występuje, gdy serwer jest wdrożony w konfiguracji, która wykorzystuje tak zwaną przezroczystą negocjację treści. Ten rodzaj negocjacji treści jest wykorzystywany do zarządzania różnymi wersjami zasobu, które mogą być dostarczane w zależności od wymagań żądającego klienta (np. różne języki, formaty plików lub kodowania).

W istocie kod stanu 506 Variant Also Negotiates oznacza, że na serwerze występuje błędna konfiguracja, która prowadzi do nieskończonej pętli negocjacji. Zamiast wybrania przez serwer konkretnej wersji żądanego zasobu w oparciu o preferencje klienta, sam wybór odnosi się do kolejnej negocjacji. W rezultacie żaden z wariantów nie jest dostarczany, ponieważ serwer jest uwięziony w cyklu odniesień, w którym jeden wariant odnosi się do innego, który z kolei odnosi się do innego i tak dalej.

Prosty przykład: klient chce strony internetowej w określonym języku. Serwer ma różne wersje językowe strony internetowej i próbuje wybrać najbardziej odpowiednią wersję. Jeśli jednak konfiguracja serwera jest nieprawidłowa, proces, który ma wybrać najbardziej odpowiednią wersję, może zamiast tego odwołać się do kolejnej rundy negocjacji zamiast dokonać ostatecznego wyboru. Kod stanu 506 Variant Also Negotiates sygnalizuje klientowi, że serwer nie jest w stanie dostarczyć odpowiedniej wersji zasobu z powodu tych wewnętrznych konfliktów lub błędnej konfiguracji.

W praktyce ten kod stanu jest rzadko spotykany, ponieważ zakłada bardzo specyficzną konfigurację serwera i stan błędu. Rozwiązanie tego problemu wymaga przeglądu i korekty konfiguracji serwera, aby zapewnić, że negocjacja treści może być wykonana poprawnie bez wchodzenia w nieskończoną pętlę.

W praktyce ten kod stanu jest rzadko spotykany, ponieważ zakłada bardzo specyficzną konfigurację serwera i stan błędu.

Specyfikacja kodu statusu HTTP 506

Kod statusu 506 Variant Also Negotiates wskazuje, że serwer ma wewnętrzny błąd konfiguracji: wybrany zasób wariantowy jest skonfigurowany do samodzielnego angażowania się w przezroczyste negocjacje treści, a zatem nie jest właściwym punktem końcowym w procesie negocjacji.

Źródło / Cytat z: Kod statusu 506 Variant Also Negotiates HTTP jest określony przez sekcję 8.1 z RFC2295.

Jak wyrzucić kod statusu 506 za pomocą PHP?

Aby wyrzucić na stronę internetową kod statusu HTTP 506, można użyć funkcji PHP http_response_code. Składnia jest następująca: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Testowanie kodu 506 statusu HTTP

Aby móc wyświetlić kod statusu HTTP (w tym przypadku 506 Variant Also Negotiates) i inne informacje po stronie klienta, należy otworzyć konsolę programistyczną za pomocą F12. Następnie należy przejść do zakładki "Network". Teraz można otworzyć stronę, w zakładce "Network" powinna być widoczna strona (przykładowy index.php). Należy ją zaznaczyć, a następnie wybrać sekcję Herder. Użytkownik zobaczy wtedy następujący wynik:

Kod statusu 506 Variant Also Negotiates
Przegląd
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
Te: Network
Adres IP: XX.XX.XX.XX
Kod statusu 506 Variant Also Negotiates

Jak stworzyć własną stronę błędu dla kodu statusu 506

Stworzenie własnej strony błędu 506 Variant Also Negotiates jest stosunkowo proste zarówno w przypadku serwera "Apache" jak i "NGINX".

Apache Webserver

Serwer WWW "Apache" jest jednym z najczęściej spotykanych serwerów WWW w Internecie. Aby stworzyć własną stronę błędu 506 Variant Also Negotiates w "Apache", należy dokonać następującej zmiany w poniższym pliku.

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

NGINX Webserver

Podobnie jak serwer internetowy "Apache", "NGINX" jest również szeroko stosowany w Internecie. Aby stworzyć własną stronę błędu 506 Variant Also Negotiates w "NGINX", należy dokonać następującej zmiany w poniższym pliku.

File: sites-enabled/default
error_page 506 /506.html;
location = /506.html {
    root /usr/share/nginx/html;
    internal;
}

Zgodność kodu statusu 506 z przeglądarką

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

Stałe w językach programowania

http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates
Autor: Tony Brüser
Autor: Tony Brüser

Tony Brüser jest entuzjastycznym twórcą stron internetowych z zamiłowaniem do kodów statusu HTTP.

LinkedInGitHub