Example HTTP Response
HTTP/1.1 505 HTTP Version Not Supported- Client using outdated HTTP version
- Server doesn't support HTTP/2 or HTTP/3
- Protocol version mismatch
What does this mean?
Speaking ancient HTTP! The server doesn't understand your dialect. Time to upgrade your protocol game!
Technical Definition
The HTTP version used in the request is not supported by the server.
RFC Says
"The 505 (HTTP Version Not Supported) status code indicates that the server does not support, or refuses to support, the major version of HTTP that was used in the request message."
Plain English:
505 means 'I don't support the HTTP version you're using.' For example, if a client tries to use HTTP/3 with a server that only supports HTTP/1.1. This is extremely rare in practice since most servers support multiple HTTP versions and negotiate appropriately.
Common Misinterpretation
You'll almost never need to return 505 in modern applications - HTTP version negotiation is handled automatically at the web server level. Don't use 505 for API versioning (like /v1 vs /v2) - that's application-level versioning, not HTTP protocol versioning.
Ready-to-use code for returning this HTTP status in your application:
// Express.js
app.get('/example', (req, res) => {
res.status(505).json({
error: 'HTTP Version Not Supported',
message: 'Your error message here'
});
});
// Native HTTP
const http = require('http');
http.createServer((req, res) => {
res.writeHead(505, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({
error: 'HTTP Version Not Supported',
message: 'Your error message here'
}));
}).listen(3000);