网站是否应该返回适​​当的HTTP状态代码?

时间:2014-06-29 02:40:09

标签: http http-status-codes

我正在开发一个小型Web应用程序,我正在尝试决定是否应该努力从应用程序中发出语义上合适的HTTP状态代码。

我的意思是,Web服务器本身发出适当的响应代码是有意义的。 500 Internal Server Error用于配置错误的Apache或404 Not Found用于丢失index.php或其他任何有意义的内容,因为服务器无法真正做到这一点。

使用303 See Other或其他实际产生行为的HTTP机制来操纵浏览器也是有意义的。

但是,如果所有发生的事情都是缺少GET参数,例如,是否有任何理由不遗余力地返回400 Bad Request?或者如果我的应用程序自己处理所有路由,404 Not Found怎么样?据我所知,没有任何与这些错误代码相关的行为。

2 个答案:

答案 0 :(得分:2)

我的一般意见:如果代码为用户提供可操作的数据,则提供代码。

如果您所做的只是展示内容,那么在大多数情况下,我认为它不那么重要。如果YouTube无法加载视频,我主要关心的是我无法观看视频。它以418状态失败可能在智力上很有趣,但它并没有真正为我提供任何有用的信息(即使假设一个非愚蠢的失败代码)。

另一方面,如果您允许某种用户与服务器进行交互,则代码变得更加重要。我可能真的关心为什么我的请求失败了,因为我现在可以对它做点什么了。

但是,有些代码是可操作的。 410 Gone例如:如果我的请求因为那个原因失败了,但我刚回来了一个通用的" Stuff Broke"消息,我可能会多次重复请求,无处可去,并且沮丧地放弃。知道我所寻找的东西不存在对我来说是一件非常有用的事情。

答案 1 :(得分:0)

我认为对于Web服务来说,使用适当的代码进行响应是非常重要的,因为有时使用该服务的开发人员可能不知道什么是错的,或者为什么应用程序停止工作,除非他查看状态代码。