表示非致命服务器错误的状态码


HTTP Status code for indicating NON FATAL Server Error

我正在构建一个API。我使用MVC架构,这是我自己用PHP编写的小框架。

这个API是RESTful的,但也通过使用NodeJS的Web Sockets提供了一个同步的实时通道。因此,从技术上讲,一些服务可以通过标准REST接口访问,其余的连续状态全流可以通过Web Sockets访问。

因此,在很多细粒度的场景中使用HTTP错误码是非常必要的。

现在,我的问题很简单,应该是什么HTTP状态码指示服务器错误,这是非致命的?

501是服务器内部错误,但在这里我正在寻找一个场景,其中请求的某些部分无法实现。

谢谢你的帮助。

关于实际场景的一点澄清

请求被服务器成功处理,但是当请求完成后,服务器无法更新日志时,会出现这种情况。因此,这是部分实现。

实际上,考虑一下,你似乎在一笔中定义了两种情况-

请求被服务器成功处理,但是当请求完成后,服务器无法更新日志时,会出现这种情况。因此,这是部分实现。

这实际上看起来像是两个独立的东西:

请求被成功处理,第1部分,所以这是一个标头200(假设),但是如果日志更新没有完成(并且只有),则是一个错误5xx。如果您可以确定为什么不写日志,然后返回一个特定的5xx错误。

如果你只想返回单个报头,那么即使请求被成功处理,如果日志没有正确更新,那么请求实际上没有被成功处理,并且应该返回5xx报头,因为5xx报头将优先于2xx报头。如果你在自己的重定向中使用报头,那么你可以使用客户报头,因为你知道如何处理那个。