2

在通过 API 从源中检索数据时,我的 Web 应用程序遇到了一个严重问题,并且由于 Google 的解释方式而被审查/删除了内容。根据我的网站管理员面板上的谷歌:

服务器错误 18,216 个错误

未找到 13,333 个错误

未遵循 9 个错误

其他 190 错误

在我的应用程序的实时版本中,我通过执行(我正在使用 codeigniter)显示返回的错误:

show_error($e->getMessage());

我这样做是因为我需要显示从源返回的错误,而无需添加太多代码,但我没有想到它稍后会产生的负面影响(我在我的第一个发布的应用程序中,仍然有很多学习)。

现在我正在开发一个新版本,但在那之前我想知道哪个 HTTP 状态代码适合用于热修复:

204 无内容

404 未找到

410 走了

其他的?

更新

代码或服务器没有问题,生成 HTTP 状态代码 500 是因为show_error($e->getMessage());我想以相同的方式使用它,但我自己添加了一个错误代码:show_error($e->getMessage(), 'error_general', 503);

因为 500 设置为默认值:

function show_error($heading, $message, $template = 'error_general', $status_code = 500)

更新2

只是为了澄清一下,我不想发送与限制访问/内容相关的 HTTP 状态代码,而是发送与内部错误消息相关的代码一$e->getMessage(),其中 90% 的案例包含错误消息,指出内容已被删除或审查。

话虽如此,我问:当显示一条错误消息说内容被删除/审查或由于 X 原因被设置为不可用时,哪个是正确的 HTTP 状态代码。

4

2 回答 2

1

如果我对您的理解正确,则用户(或用户代理)正在尝试访问曾经存在但出于所有意图和目的而不再可用的东西。它可能存在于您服务器的某个地方,但就网络而言,它并不存在。

如果是这种情况,您有一些选择,具体取决于您要与用户交流的内容:

  1. 403 - 禁止。如果您想让用户知道确实存在这样的资源,但您无法获得它,则可以使用此功能。这意味着身份验证无济于事。
  2. 410 - 走了。这意味着,是的,这里有一些东西,但现在没有了,它不会再回来了。仅当您确定该状况是永久性的时才使用此选项。
  3. 404 - 未找到。这比 410 更通用。如果您不确定 410 是否合适,请退回到 404。

403 和 410 都让用户知道这是某种合法路径,但您可能永远无法获取资源。对于所有这三个,您可以在响应正文中包含解释(即您的错误消息)。

于 2012-04-03T22:29:59.713 回答
0

5xx 错误表明它与服务器有关,这显然是这种情况。在查看不同的状态代码 (http://httpstatus.es/) 时,我会建议 503:服务器当前不可用。

于 2012-04-03T17:13:24.963 回答