选择HTTP状态代码

时间:2012-04-03 17:05:40

标签: http codeigniter http-headers http-status-codes

我在使用API​​从源检索数据时,我的网络应用程序存在严重问题,并且由于Google正在解释它而被审查/删除内容。谷歌在我的网站管理员面板上说:

  

服务器错误18,216错误

     

未找到13,333错误

     

未遵循9个错误

     

其他190个错误

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

show_error($e->getMessage());

我之所以这样做,是因为我需要从源代码中显示返回的错误,而不添加太多代码,但我没想到以后会产生负面影响(我是第一次发布的应用程序,还有很多东西值得学习。)

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

  

204无内容

     

404未找到

     

410 Gone

另外一个人?

更新

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

因为500被设置为默认值:

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

UPDATE2

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

所以说,我问:在显示错误消息时要使用哪个正确的HTTP状态代码,该错误消息说内容被删除/审查或因X原因设置为不可用。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么用户(或用户代理)正在尝试访问曾经存在的东西,但是出于所有意图和目的,它将不再可用。它可能存在于您服务器的某个位置,但就Web而言,它不存在。

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

  1. 403 - 禁止。如果您想让用户知道存在这样的资源,但是您无法获得它,则可以使用此方法。这意味着身份验证无济于事。
  2. 410 - 走了。这意味着,是的,这里有一些东西,但不再存在,它不会再回来了。只有在您确定条件是永久性的情况下才能使用它。
  3. 404 - 未找到。这比410更通用。如果您不确定410是否合适,请回到404.
  4. 403和410都让用户知道它是某种合法的路径,但是你可能永远无法获取资源。对于所有三个,您可以在响应正文中包含一个解释(即您的错误消息)。

答案 1 :(得分:0)

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