我已经阅读了一些关于 HTTP 状态的文章,但我仍然不确定为什么我应该在我的应用程序中指定它们。假设用户在尝试登录时提供了错误的密码。在我的 express 应用程序中,我可以通过这些方式发送回复:
res.status(401).json({ message: 'Wrong password' })
或
res.json({ message: 'Wrong password' })
那么我的应用程序逻辑是基于message
值的。
我知道在第二种情况下状态代码将是 200 OK
,但我为什么要关心它?
最佳答案
很多原因。一些我的头顶:
缓存。
2xx
responses are cacheable by default.您不应该为错误发送200
响应,否则用户可能会觉得他们永远无法登录!与客户端库的兼容性。能够使用 things that are standards compliant 真是太好了,因此您可以执行
.catch()
并向用户显示错误,而不是使用大量自定义逻辑来确定响应是否正确。状态代码也来自链中的其他代码。您通常不只是在与您的应用程序交谈,而且通常是 a proxy on your end .然后,可能有几个 proxies between the client and you .为什么您的客户端代码必须弄清楚您的应用程序级信令 和 状态码信令,而它们可以是相同的?问问有卫星互联网的人……他们会告诉你当人们不遵守标准时中间代理会是多么痛苦。
自动错误记录。您肯定使用 some system跟踪系统中的错误,对吗?如果您使用标准的 HTTP 响应代码,它们可以自动分类。
关于javascript - 为什么我必须一般指定任何 HTTP 状态代码?它有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57209067/