如果服务器不支持异步,什么是有效的 HTTP 错误代码

What is valid HTTP error code if server does not support async

我们的服务器可以支持异步和同步 HTTP 请求。然而,异步请求的处理取决于一些内部参数和“can-not-be-supported”在某些情况下。

客户端请求使用 prefer 异步处理请求 header。

https://www.rfc-editor.org/rfc/rfc7240#page-8

如果不支持异步,服务器的正确响应代码应该是什么?应该是HTTP 501没有实现吧?

https://www.rfc-editor.org/rfc/rfc7231#section-6.6.2

请注意,如果客户不包含首选 header,则可以同步处理相同的请求。那么这也可以作为4xx错误处理吗?

Shall it be HTTP 501 not implemented?

没有

So can this be also treated as 4xx error?

完全没有。

What shall be the proper response code by server if async is not supported?

忽略它并继续前进。看看 RFC 7240 是怎么说的:

A server that does not recognize or is unable to comply with particular preference tokens in the Prefer header field of a request MUST ignore those tokens and continue processing instead of signaling an error.