http - 返回 http 200 OK,响应正文中有错误

标签 http http-status-code-400 http-status-code-200

我想知道当服务器端发生错误时返回HTTP 200 OK是否正确(错误详细信息将包含在响应主体中)。

例子:

  1. 我们正在发送 HTTP GET
  2. 服务器端发生意外。
  3. 服务器返回 HTTP 200 OK 状态代码,响应中有错误(例如 {"status":"some error occurred"})

这是正确的行为吗?我们是否应该将状态码更改为 200 以外的其他值?

最佳答案

不行,发送带有错误正文的200是非常不正确的

HTTP 是一种应用协议(protocol)。 200 意味着响应包含表示所请求资源状态的有效负载。错误消息通常不是该资源的表示。

如果在处理 GET 时出现问题,正确的状态代码是 4xx(“你搞砸了”)或 5xx(“我搞砸了”)。

关于http - 返回 http 200 OK,响应正文中有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27921537/

相关文章:

node.js - 如何使用 Nodejs 中的请求从缓存控制 header 获取​​ max-age 值?

ios - 获得 APNs 响应 BadDeviceToken 或 Unregistered 的可能原因是什么?

python - 再次 urllib.error.HTTPError : HTTP Error 400: Bad Request

javascript - 为什么 XmlHttpRequest readyState = 2 on 200 HTTP 响应代码

javascript - 避免向服务器发出条件请求

http - Web 服务器响应对无法识别的主机的请求的正确方法是什么?

java - Web 应用程序需要为 UTF-8 下载的文件提供适当的响应 header

HTTP GET : Same GET-Parameter multiple Times, 这是 RFC 允许的吗?

javascript - DHTMLX dhtmlxForm.send() 抛出 HTTP 状态 400 - "The request sent by the client was syntactically incorrect."