2 votes

Est-il logique qu'une réponse `HTTP/1.1` renvoie le code de statut HTTP `421 Misdirected Request` ?

Je suis actuellement en train de déboguer une surprenante réponse "Bad Request" provenant d'une API.

Demande :

POST /path HTTP/1.1
...

Réponse :

HTTP/1.1 421 Misdirected Request
Date: Fri, 30 Nov 2018 21:59:12 GMT
...
Via: https/1.1 subdomain.example.org (ApacheTrafficServer/7.1.4)
...

D'après mes recherches, le code d'état HTTP 421 n'a été ajouté qu'avec la norme Spécification http/2 . Comme vous pouvez le voir, mon client envoie une requête HTTP1.1.

Est-il logique de l'utiliser dans la réponse à une requête HTTPS/1.1 ? Qu'est-ce que cela peut signifier ?


Mise à jour : Des recherches plus approfondies indiquent que cette réponse 421 est déclenchée par un jeton CSRF et une valeur Cookie invalides dans l'en-tête, la réessai de la demande avec une combinaison valide vérifiable renvoie le résultat attendu avec 200 OK . Malheureusement, cela n'explique pas grand-chose.

2voto

BazzaDP Points 2585

421 a été ajouté pour HTTP/2 qui permet la réutilisation de la connexion. Si un client réutilise une connexion de manière incorrecte ( comme le faisait Firefox ), le serveur doit répondre de la manière suivante.

Cependant, cela ne signifie pas qu'il s'agit d'un code de statut HTTP/2 uniquement. Par exemple, si un équilibreur de charge reçoit des requêtes HTTP/2 et les transmet à des serveurs dorsaux via HTTP/1.1, l'un de ces serveurs dorsaux peut rejeter une requête via HTTP/1.1 s'il estime que cette requête lui a été envoyée de manière incorrecte. Comme vous pouvez le constater, votre requête a été envoyée via un serveur de trafic Apache, et je soupçonne donc que c'est ce qui s'est passé ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X