HTTPQUERY
中文

510 Not Extended

Usage

The 510 Not Extended status code is part of the HTTP Extension Framework. IANA now lists 510 as “Not Extended (OBSOLETED)” and the specification has been moved to Historic status, meaning the protocol is no longer recommended for use.

The error occurs when the client is required to use an extended HTTP request but has not done so. The server response includes information on how to extend the request, though the exact format is not specified in the protocol.

Example

The client sends a request requiring a mandatory HTTP extension. The server responds with 510 Not Extended because the request does not include the required M- prefix and extension declaration.

Request

GET /resource HTTP/1.1
Host: example.com

Response

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>

How to fix

The server requires an HTTP extension the client did not include in the request. The 510 response body describes which extension is needed.

On the client side:

On the server side:

This status code is rarely encountered in practice. The HTTP Extension Framework has been moved to Historic status and has seen near-zero adoption. Most modern APIs and web applications handle feature negotiation through custom headers, query parameters, or API versioning rather than the Extension Framework mechanism.

510 in service workers

Service workers intercepting fetch requests sometimes surface a 510 when the worker lacks the extension or capability the origin requires. The fix is the same: check the response body for the missing extension and update the service worker fetch handler to include the required headers.

Code references

.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