当服务器端出现意外错误时使用哪种http代码?

当服务器端出现意外错误时使用哪种http代码?,http,Http,我知道5xx代码用于服务器端发生的错误。我在java中的服务器上有一个函数,我在其中调用try/catch子句中的另一个API(imdb API)。正常情况下,一切正常,我将返回201状态代码,即实体已创建。但是,如果出现了意外的错误,这实际上是唯一的情况,如果imdb决定更改其API,那么我的catch子句将运行,并且从那里我希望返回堆栈跟踪+正确的错误代码。你会选择哪一个?500有什么问题?如果你想遵循标准(你真的应该!),使用500,你当然不需要遵循标准(尽管这是非常推荐的),并且可以自由

我知道5xx代码用于服务器端发生的错误。我在java中的服务器上有一个函数,我在其中调用try/catch子句中的另一个API(imdb API)。正常情况下,一切正常,我将返回201状态代码,即实体已创建。但是,如果出现了意外的错误,这实际上是唯一的情况,如果imdb决定更改其API,那么我的catch子句将运行,并且从那里我希望返回堆栈跟踪+正确的错误代码。你会选择哪一个?

500有什么问题?如果你想遵循标准(你真的应该!),使用500,你当然不需要遵循标准(尽管这是非常推荐的),并且可以自由返回任何带有任何原因短语的状态码,你甚至可以返回带有一些http错误内容的
200 OK
(就像nginx处理它的(例如)
403禁止
状态代码一样,它仍然返回403),但是要注意,当使用500个客户端时,它们很可能会显示自己的错误页面,并且完全忽略您发送回的内容