505 HTTP Version Not Supported
用法
505 HTTP Version Not Supported 状态码表示服务器不支持请求中的主协议版本。服务器应生成一个响应,说明为何不支持该特定的 HTTP 协议版本,并列出服务器愿意为此 URI 接受的 HTTP 协议。
SEO 影响
像 Google 这样的搜索引擎不会索引返回 505 HTTP Version Not Supported 状态的 URL。过去已被索引但返回此状态码的 URL 会从搜索结果中移除。
示例
客户端使用 HTTP/2 请求某个资源,服务器返回 505 HTTP Version Not Supported 状态码,因为服务器只支持 HTTP/1.1。
请求
GET / HTTP/2
Host: example.com
响应
HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/html; charset=UTF-8
Content-Length: 141
<html>
<head>
<title>Protocol Not Supported</title>
</head>
<body>
<p>HTTP/2 not supported. Use HTTP/1.1.</p>
</body>
</html>
如何修复
确定协议不匹配之处。服务器日志或响应体会指明哪个 HTTP 版本被拒绝,以及服务器接受哪些版本。
在客户端:
在服务器端:
通过使用先前被拒绝的 HTTP 版本发起请求并确认收到成功响应,来验证修复效果。
代码参考
.NET
HttpStatusCode.HttpVersionNotSupported
Rust
http::StatusCode::HTTP_VERSION_NOT_SUPPORTED
Rails
:http_version_not_supported
Go
http.StatusHTTPVersionNotSupported
Symfony
Response::HTTP_VERSION_NOT_SUPPORTED
Python3.5+
http.HTTPStatus.HTTP_VERSION_NOT_SUPPORTED
Java
java.net.HttpURLConnection.HTTP_VERSION
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_HTTP_VERSION_NOT_SUPPORTED
Angular
@angular/common/http/HttpStatusCode.HttpVersionNotSupported