510 Not Extended
Utilisation
Le code de statut 510 Not Extended fait partie du HTTP Extension Framework. L’IANA répertorie désormais 510 comme « Not Extended (OBSOLETED) » et la spécification est passée au statut Historic, ce qui signifie que le protocole n’est plus recommandé.
L’erreur survient lorsque le client est tenu d’utiliser une requête HTTP étendue mais ne l’a pas fait. La réponse du serveur contient des informations sur la manière d’étendre la requête, bien que le format exact ne soit pas défini par le protocole.
Impact SEO
Les moteurs de recherche traitent 510 comme les autres erreurs serveur 5xx. Des échecs persistants réduisent la vitesse d’exploration et finissent par retirer les URL concernées de l’index.
Exemple
Le client envoie une requête nécessitant une extension HTTP obligatoire. Le serveur répond par 510 Not Extended parce que la requête ne comporte pas le préfixe M- requis ni la déclaration d’extension.
Requête
GET /resource HTTP/1.1
Host: example.com
Réponse
HTTP/1.1 510 Not Extended
Content-Type: text/html; charset=UTF-8
Content-Length: 199
<html>
<head>
<title>Not Extended</title>
</head>
<body>
<p>The request requires a mandatory HTTP
extension. Resubmit with the required
extension headers.</p>
</body>
</html>
Comment corriger
Le serveur exige une extension HTTP que le client n’a pas incluse dans la requête. Le corps de la réponse 510 décrit l’extension nécessaire.
Côté client :
Côté serveur :
Ce code de statut est très rarement rencontré en pratique. Le HTTP Extension Framework est passé au statut Historic et n’a été que quasiment pas adopté. La plupart des API et applications web modernes gèrent la négociation de fonctionnalités via des en-têtes personnalisés, des paramètres de requête ou le versionnage d’API, plutôt que par le mécanisme du Extension Framework.
510 dans les service workers
Les service workers qui interceptent les requêtes fetch font parfois apparaître un 510 lorsque le worker ne dispose pas de l’extension ou de la capacité exigée par le serveur d’origine. Le correctif est le même : consultez le corps de la réponse pour identifier l’extension manquante et mettez à jour le gestionnaire fetch du service worker afin d’inclure les en-têtes requis.
Références de code
.NET
HttpStatusCode.NotExtended
Rust
http::StatusCode::NOT_EXTENDED
Rails
:not_extended
Go
http.StatusNotExtended
Symfony
Response::HTTP_NOT_EXTENDED
Python3.5+
http.HTTPStatus.NOT_EXTENDED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_NOT_EXTENDED
Angular
@angular/common/http/HttpStatusCode.NotExtended