HTTPQUERY
Français

421 Misdirected Request

Utilisation

L’erreur 421 Misdirected Request indique que le serveur n’est pas en mesure de produire une réponse. Ce statut est envoyé à la suite d’une réutilisation de connexion, lorsque le serveur ne souhaite pas que les clients réutilisent les connexions. En réponse, un client tente de resoumettre la requête sur une connexion différente.

Cela se produit également lorsqu’un service alternatif (Alt-Svc) est sélectionné.

Ce statut n’est pas généré par les proxys.

Impact SEO

Google recommande de renvoyer 421 pour refuser l’exploration par Googlebot en HTTP/2. Googlebot explore à la fois en HTTP/1.1 et en HTTP/2. Répondre 421 aux requêtes HTTP/2 de Googlebot interrompt l’exploration HTTP/2 du site. Les pages qui renvoient 421 ne sont pas indexées, et les URL précédemment indexées qui renvoient ce code sont retirées des résultats de recherche.

Exemple

Le client demande une ressource et le serveur répond 421 Misdirected Request, car la requête est arrivée sur une connexion qui n’était pas destinée à cet hôte.

Requête

GET /tech-news HTTP/2
Host: example.com

Réponse

HTTP/2 421 Misdirected Request

Comment corriger

Réessayez la requête sur une connexion neuve et dédiée vers l’origine visée. Le navigateur ou le client ouvre une nouvelle session TCP/TLS au lieu de réutiliser une connexion HTTP/2 multiplexée existante.

Côté serveur, vérifiez que le certificat TLS couvre chaque nom d’hôte pris en charge par le serveur. Un désaccord entre la valeur SNI (Server Name Indication) et l’en-tête Host en est le déclencheur le plus fréquent.

Lorsque nginx sert de proxy inverse vers un backend Apache en HTTPS, activez le transfert du SNI pour qu’Apache voie le bon nom d’hôte :

Dans Apache, vérifiez que chaque hôte virtuel possède un ServerName correspondant et un certificat valide. Les contrôles SNI renforcés des versions récentes d’Apache rejettent les requêtes où le nom d’hôte SNI et l’en-tête Host sont en conflit.

Pour les CDN et répartiteurs de charge qui rechiffrent le trafic vers l’origine, assurez-vous que la poignée de main TLS amont envoie la bonne valeur SNI. Cloudflare et les services similaires exigent que le certificat d’origine liste tous les noms d’hôte servis.

Désactivez la fusion de connexions HTTP/2 sur le serveur lorsque plusieurs domaines partagent une même adresse IP mais utilisent des certificats différents. Chaque domaine a besoin d’une connexion distincte.

Références de code

.NET

HttpStatusCode.MisdirectedRequest

Rust

http::StatusCode::MISDIRECTED_REQUEST

Rails

:misdirected_request

Go

http.StatusMisdirectedRequest

Symfony

Response::HTTP_MISDIRECTED_REQUEST

Python3.5+

http.HTTPStatus.MISDIRECTED_REQUEST

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_MISDIRECTED_REQUEST

Angular

@angular/common/http/HttpStatusCode.MisdirectedRequest