真正的问题;HTTP 状态代码如此之多,人们总是鼓励您在某种情况下使用正确的状态代码。
除了常见的(200
、404
和500
)之外,我发送回用户的 HTTP 状态代码真的很重要吗?
浏览器对每个状态代码执行的操作是否不同?
在很多情况下:不。只要您使用正确的错误类别(4xx、5xx),很多事情都会起作用。
使用更具体的 HTTP 状态代码的目的有两个:
#2 的一些例子:
401
可以允许通用客户端发起身份验证。429
可以允许通用客户端在一段时间后自动后退并重试请求。一个好的客户可以完全独立于您的 API 做出这些类型的决策。它知道如何行事,因为这些是商定的标准。
但是,如果您不使用可以处理任何这些高级功能的客户端,那么使用它们就不那么重要了。
所有这些状态代码或多或少都是考虑到这个想法而设计的;也许它可以允许客户端自动解决错误,也许它会立即了解缓存是否应该标记为过时,或者也许它可以向最终用户提供良好的默认反馈。
然而,大多数 API 和客户端只会使用其中的一些功能。所以我的一般建议是:
如果您想了解更多信息,请参阅最新 HTTP 标准的主要作者之一对此的看法: https: //www.mnot.net/blog/2017/05/11/status_codes
我还写了一系列关于每种状态以及每种状态的实际用途的博客文章: https: //evertpot.com/http/
归档时间: |
|
查看次数: |
1243 次 |
最近记录: |