506
Variant Also Negotiates
Explicación general del código de estado 506
El código de estado HTTP 506 Variant Also Negotiates es un indicador de un problema específico dentro de un servidor que se produce cuando el servidor se implementa en una configuración que utiliza la llamada negociación de contenido transparente. Este tipo de negociación de contenido se utiliza para gestionar diferentes versiones de un recurso que se pueden entregar en función de los requisitos del cliente solicitante (por ejemplo, diferentes idiomas, formatos de archivo o codificaciones).
En esencia, el código de estado 506 Variant Also Negotiates significa que hay un error de configuración en el servidor que conduce a un bucle infinito de negociación. En lugar de que el servidor seleccione una versión específica del recurso solicitado basándose en las preferencias del cliente, la propia selección remite a otra negociación. El resultado es que no se entrega ninguna de las variantes porque el servidor está atrapado en un ciclo de referencias, en el que una variante remite a otra, que a su vez remite a otra, y así sucesivamente.
Un ejemplo sencillo: un cliente quiere una página web en un idioma concreto. El servidor dispone de diferentes versiones lingüísticas de la página web e intenta seleccionar la versión más adecuada. Sin embargo, si la configuración del servidor es incorrecta, el proceso que se supone que debe seleccionar la versión más adecuada podría remitir a otra ronda de negociaciones en lugar de hacer una selección definitiva. El código de estado 506 Variant Also Negotiates indica al cliente que el servidor no puede entregar una versión adecuada del recurso debido a estos conflictos internos o errores de configuración.
En la práctica, este código de estado rara vez se ve porque supone una configuración del servidor y una condición de error muy específicas. Resolver el problema requiere una revisión y corrección de la configuración del servidor para asegurar que la negociación de contenidos se puede realizar correctamente sin entrar en un bucle infinito.
Especificación del código de estado HTTP 506
Fuente / Cita de: El código de estado HTTP 506 Variant Also Negotiates se especifica en la sección 8.1 de RFC2295.
Protocolo HTTP
¿Cómo lanzar un código de estado 506 con PHP?
Para lanzar el código de estado HTTP 506 en una página web, se puede utilizar la función PHP http_response_code. La sintaxis es la siguiente: http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Probar el código de estado HTTP 506
Para poder mostrar el código de estado HTTP (en este caso 506 Variant Also Negotiates) y otra información en el lado del cliente, debe abrirse la consola de desarrollo con F12. A continuación, vaya a la pestaña "Red". Ahora se puede abrir la página, el sitio web (ejemplo index.php) debe ser visible en la pestaña de red. Esta debe ser seleccionada y luego la sección Herder debe ser seleccionada. El usuario verá entonces el siguiente resultado:
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Estado: 506 Variant Also Negotiates
Esos: Network
Dirección IP: XX.XX.XX.XX
Cómo crear su propia página de error para el código de estado 506
Apache Webserver
El servidor web "Apache" es uno de los más comunes en Internet. Para crear su propia página de error 506 Variant Also Negotiates en "Apache", se debe realizar el siguiente cambio en el siguiente archivo.
NGINX Webserver
Similar al servidor web "Apache", "NGINX" también se utiliza ampliamente en Internet. Para crear su propia página de error 506 Variant Also Negotiates en "NGINX", es necesario realizar el siguiente cambio en el siguiente archivo.
location = /506.html {
root /usr/share/nginx/html;
internal;
}
Compatibilidad del código de estado 506 con los navegadores
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 |
Constantes en lenguajes de programación
http.StatusVariantAlsoNegotiates
Response::HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL
:variant_also_negotiates