510 Not Extended
HTTP response status code 510 Not Extended is a server error indicating the request requires an HTTP extension not present in the request.
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.
SEO impact
Search engines treat 510 the same as other 5xx server errors. Persistent failures reduce crawl rate and eventually remove affected URLs from the index.
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: www.example.re
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:
- Read the 510 response body for details on the
required extension. The specification defines
mandatory extensions using the
Manheader and optional extensions use theOptheader, each referencing an extension namespace URI. - Resubmit the request with the required extension
declaration. The request method must use the
M-prefix (e.g.M-GET) when a mandatory extension is present, and theManheader must reference the extension URI with a namespace prefix bound via theC-Extheader. - If the client has no support for the extension, contact the server operator to determine whether an alternative endpoint or protocol is available without the extension requirement.
On the server side:
- Verify the mandatory extension requirement is intentional. A misconfigured server sending 510 for standard requests blocks all clients lacking the extension.
- Provide a clear response body explaining the required extension and how to include the declaration, so clients receive actionable error messages.
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.
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
Takeaway
The 510 Not Extended status code is a server error indicating the client did not include a required HTTP extension in the request, and the request was not completed.
See also
- RFC 2774: An HTTP Extension Framework
- Google: HTTP status codes and network errors
- 500 Internal Server Error
- 501 Not Implemented
- HTTP status codes