HTTPQUERY
Deutsch

510 Not Extended

Verwendung

Der Statuscode 510 Not Extended ist Teil des HTTP Extension Framework. Die IANA führt 510 mittlerweile als „Not Extended (OBSOLETED)“, und die Spezifikation wurde in den Status Historic überführt, das heißt, das Protokoll wird für den Einsatz nicht mehr empfohlen.

Der Fehler tritt auf, wenn vom Client eine erweiterte HTTP-Anfrage verlangt wird, er diese aber nicht gesendet hat. Die Serverantwort enthält Informationen dazu, wie die Anfrage zu erweitern ist, auch wenn das genaue Format im Protokoll nicht festgelegt ist.

SEO-Auswirkung

Suchmaschinen behandeln 510 wie andere 5xx-Serverfehler. Anhaltende Fehler verringern die Crawl-Rate und entfernen betroffene URLs schließlich aus dem Index.

Beispiel

Der Client sendet eine Anfrage, die eine verbindliche HTTP-Erweiterung erfordert. Der Server antwortet mit 510 Not Extended, weil die Anfrage weder das erforderliche M—Präfix noch die Erweiterungsdeklaration enthält.

Anfrage

GET /resource HTTP/1.1
Host: example.com

Antwort

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>

Behebung

Der Server verlangt eine HTTP-Erweiterung, die der Client nicht in die Anfrage aufgenommen hat. Der Body der 510-Antwort beschreibt, welche Erweiterung benötigt wird.

Auf Client-Seite:

Auf Server-Seite:

Dieser Statuscode begegnet einem in der Praxis nur selten. Das HTTP Extension Framework wurde in den Status Historic überführt und hat nahezu keine Verbreitung gefunden. Die meisten modernen APIs und Webanwendungen regeln die Aushandlung von Funktionen über eigene Header, Query-Parameter oder API-Versionierung statt über den Mechanismus des Extension Framework.

510 in Service Workern

Service Worker, die Fetch-Anfragen abfangen, lassen mitunter ein 510 durchscheinen, wenn dem Worker die Erweiterung oder Fähigkeit fehlt, die der Origin verlangt. Die Behebung ist dieselbe: Prüfen Sie den Antwort-Body auf die fehlende Erweiterung und aktualisieren Sie den Fetch-Handler des Service Workers so, dass er die erforderlichen Header mitsendet.

Code-Referenzen

.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