506

Variant Also Negotiates

Officiellement,
Le point final négocie lui-même

Explication générale du code d'état 506

Le code d'état HTTP 506 Variant Also Negotiates est un indicateur d'un problème spécifique au sein d'un serveur, qui se produit lorsque le serveur est déployé dans une configuration qui utilise la négociation de contenu dite transparente. Ce type de négociation de contenu est utilisé pour gérer les différentes versions d'une ressource qui peuvent être livrées en fonction des exigences du client demandeur (p. ex. différentes langues, formats de fichiers ou encodages).

En substance, le code d'état 506 Variant Also Negotiates signifie qu'il existe une mauvaise configuration sur le serveur qui entraîne une boucle de négociation sans fin. Au lieu que le serveur sélectionne une version spécifique de la ressource demandée en se basant sur les préférences du client, la sélection elle-même renvoie à une autre négociation. Le résultat est qu'aucune des variantes n'est livrée, car le serveur est pris dans un cycle de références où une variante renvoie à une autre, qui renvoie à son tour à une autre, et ainsi de suite.

Prenons un exemple simple : un client veut une page web dans une langue spécifique. Le serveur dispose de plusieurs versions linguistiques de la page web et essaie de choisir la version la plus appropriée. Cependant, si la configuration du serveur est erronée, le processus qui doit choisir la version la plus appropriée pourrait plutôt renvoyer à un autre tour de négociations au lieu de faire un choix définitif. Le code d'état 506 Variant Also Negotiates signale au client que le serveur n'est pas en mesure de fournir une version appropriée de la ressource en raison de ces conflits internes ou de configurations erronées.

En pratique, ce code d'état est rarement vu, car il suppose une configuration de serveur très spécifique et un état d'erreur. La résolution du problème nécessite de vérifier et de corriger la configuration du serveur afin de s'assurer que la négociation du contenu peut être effectuée correctement sans entrer dans une boucle sans fin.

Spécification du code d'état HTTP 506

Le code d'état 506 Variant Also Negotiates indique que le serveur a une erreur de configuration interne : la ressource variante choisie est configurée pour s'engager elle-même dans une négociation de contenu transparente et n'est donc pas un point final approprié dans le processus de négociation.

Source / Citation de : Le code d'état HTTP 506 Variant Also Negotiates est spécifié par la section 8.1 de RFC2295.

Comment lancer un code d'état 506 avec PHP ?

Pour lancer le code d'état HTTP 506 sur une page web, on peut utiliser la fonction PHP http_response_code. La syntaxe est la suivante : http_response_code(506) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Teste le code d'état HTTP 506

Pour pouvoir afficher le code de statut HTTP (dans ce cas 506 Variant Also Negotiates) et d'autres informations côté client, il faut ouvrir la console de développement avec F12. Ensuite, il faut naviguer vers l'onglet "Réseau". La page peut maintenant être ouverte, la page web (exemple index.php) doit être visible dans l'onglet réseau. Il faut la sélectionner et choisir ensuite le domaine Herder. L'utilisateur voit alors le résultat suivant :

Code d'état 506 Variant Also Negotiates
Aperçu
URL: https://http-statuscode.com/errorCodeExample.php?code=506
Statut: 506 Variant Also Negotiates
Ceux-ci: Network
Adresse IP: XX.XX.XX.XX
Code d'état 506 Variant Also Negotiates

Comment créer une page d'erreur personnalisée pour le code d'état 506 ?

Créer sa propre page d'erreur 506 Variant Also Negotiates est relativement facile, aussi bien avec le serveur web "Apache" qu'avec le serveur web "NGINX".

Apache Webserver

Le serveur web "Apache" est l'un des serveurs web les plus répandus sur Internet. Pour créer sa propre page d'erreur 506 Variant Also Negotiates dans "Apache", il faut effectuer la modification suivante dans le fichier suivant.

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

NGINX Webserver

Tout comme le serveur web "Apache", "NGINX" est également très répandu sur Internet. Pour créer sa propre page d'erreur 506 Variant Also Negotiates dans "NGINX", il faut effectuer la modification suivante dans le fichier suivant.

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

Compatibilité du navigateur avec le code d'état 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

Les constantes dans les langages de programmation

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

Tony Brüser est un développeur web enthousiaste avec une prédilection pour les codes de statut HTTP.

LinkedInGitHub