HTTPQUERY
Français

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