Le code d'état 505 Version HTTP non prise en charge indique que le serveur ne prend pas en charge ou ne peut pas satisfaire la version du protocole HTTP utilisée dans la requête.
Voici les causes typiques d'un code d'état 505 Version HTTP non prise en charge :
- La version du protocole HTTP spécifiée dans le message de requête est invalide, non prise en charge, obsolète ou n'existe pas sur le serveur. Les exemples courants incluent l'utilisation de fonctionnalités HTTP/0.9 ou HTTP/2.0 avec un serveur HTTP/1.1.
- Le serveur Web a été récemment mis à niveau pour utiliser des sémantiques HTTP incompatibles avec les comportements précédents. Par exemple, un client envoie une requête HTTP/1.0 à un serveur HTTP/1.1 mis à niveau qui ne comprend plus les parties utilisées.
- Il existe un proxy, un équilibreur de charge ou un intermédiaire qui prend en charge différentes versions de protocole HTTP entre le client et le serveur backend, bloquant les flux de syntaxe non pris en charge entre eux.
- Les bibliothèques, frameworks ou modules HTTP du client présentent des bogues, des incompatibilités ou des problèmes de configuration, choisissant la mauvaise version du protocole HTTP pour les requêtes adressées à une API documentée ou à un contrat d'extrémité.
- Des erreurs de code ou une logique invalide côté serveur entraînent des décalages de version avec les requêtes entrantes. Cela pourrait apparaître après de nouveaux déploiements, des modifications de configuration ou des mises à niveau de plateforme.
- Les offres d'infrastructure en tant que service, les plateformes de calcul sans serveur ou les fournisseurs d'hébergement Web imposent une incompatibilité des normes HTTP avec les applications tentant d'utiliser des versions obsolètes.
En résumé, les codes d'état 505 reflètent l'incapacité du serveur cible à comprendre ou à analyser correctement les messages de requête entrants en raison de versions de spécification HTTP incompatibles demandées par le client par rapport à celles prises en charge par le serveur.