HTTPQUERY
Español

510 Not Extended

Uso

El código de estado 510 Not Extended forma parte del marco de extensiones de HTTP (HTTP Extension Framework). La IANA lista ahora el 510 como “Not Extended (OBSOLETED)” y la especificación se ha trasladado al estado Historic, lo que significa que ya no se recomienda usar ese protocolo.

El error se produce cuando se requiere que el cliente use una solicitud HTTP extendida y no lo ha hecho. La respuesta del servidor incluye información sobre cómo extender la solicitud, aunque el protocolo no especifica el formato exacto.

Impacto en SEO

Los motores de búsqueda tratan el 510 igual que los demás errores de servidor 5xx. Los fallos persistentes reducen la velocidad de rastreo y acaban eliminando del índice las URL afectadas.

Ejemplo

El cliente envía una solicitud que requiere una extensión HTTP obligatoria. El servidor responde con 510 Not Extended porque la solicitud no incluye el prefijo M- ni la declaración de extensión requeridos.

Solicitud

GET /resource HTTP/1.1
Host: example.com

Respuesta

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>

Cómo solucionarlo

El servidor requiere una extensión HTTP que el cliente no incluyó en la solicitud. El cuerpo de la respuesta 510 describe qué extensión se necesita.

En el lado del cliente:

En el lado del servidor:

Este código de estado se encuentra muy pocas veces en la práctica. El marco de extensiones de HTTP se ha trasladado al estado Historic y su adopción ha sido prácticamente nula. La mayoría de las API y aplicaciones web modernas gestionan la negociación de funcionalidades mediante cabeceras personalizadas, parámetros de consulta o versionado de la API, en lugar del mecanismo del marco de extensiones.

El 510 en los service workers

Los service workers que interceptan solicitudes fetch a veces muestran un 510 cuando el worker carece de la extensión o la capacidad que exige el servidor de origen. La solución es la misma: consulte en el cuerpo de la respuesta cuál es la extensión que falta y actualice el manejador de fetch del service worker para que incluya las cabeceras requeridas.

Referencias de código

.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