506
Variant Also Negotiates
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
Źródło / Cytat z: Kod statusu 506 Variant Also Negotiates HTTP jest określony przez sekcję 8.1 z RFC2295.
Protokół HTTP
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:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Status: 506 Variant Also Negotiates
Te: Network
Adres IP: XX.XX.XX.XX
Jak stworzyć własną stronę błędu dla kodu statusu 506
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.
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.
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