首页 > 解决方案 > 为什么我通常必须指定任何 HTTP 状态代码?它有什么好处?

问题描述

我已经阅读了一些关于 HTTP 状态的文章,但我仍然不确定为什么我应该在我的应用程序中指定它们。假设用户在尝试登录时提供了错误的密码。在我的快递应用程序中,我可以通过以下方式发送响应:

 res.status(401).json({ message: 'Wrong password' })

或者

res.json({ message: 'Wrong password' })

然后我的应用程序逻辑基于该 message值。我知道在第二种情况下状态码将是200 OK,但我为什么要关心它呢?

标签: javascripthttp

解决方案


很多原因。我的头顶有几个:

  • 缓存。 2xx默认情况下,响应是可缓存的。 您不应该200针对错误发送响应,否则用户可能会认为他们永远无法登录!

  • 与客户端库的兼容性。能够使用符合标准的东西当然很好,因此您可以做一个.catch()并向用户显示错误,而不是使用大量自定义逻辑来确定响应是否良好。

  • 状态代码也来自链中的其他代码。您通常不仅与您的应用程序交谈,而且通常是您的代理。然后,客户和您之间可能有多个 代理。为什么您的客户端代码必须同时确定您的应用程序级信号状态代码信号,因为它们可以是相同的之一?问问有卫星互联网的人......他们会告诉你当人们不遵守标准时,中间代理会带来什么痛苦。

  • 自动错误记录。您肯定会使用某些系统来跟踪系统中的错误,对吗?如果您使用标准 HTTP 响应代码,它们可以自动分类。


推荐阅读