繁体   English   中英

这些REST HTTP响应代码正确吗?内容类型又如何?

[英]Are these REST HTTP response codes right, and what about the Content-Type?

我正在写一个控制器助手,它为我的REST控制器动作设置正确的响应头。 它粘贴在下面,应该进行简化,以使不熟悉Zend Framework的人了解我在做什么。

我的问题是:这些代码对于它们各自的响应是否正确?在“拒绝访问”的情况下,我应该使用401还是403?

另外,如果发生错误响应,我知道我应该在响应正文中放置一条消息,但是我应该将“ Content-Type”设置为“ text / plain”吗?

<?php

class App_Controller_Helper_RestResponse extends Zend_Controller_Action_Helper_Abstract
{
    public function denied()
    {
        // 403 or 401?
    }

    public function notFound()
    {
        // 404
    }

    public function created()
    {
        // 201
    }

    public function deleted()
    {
        // 204
    }


    public function redirect()
    {
        // 301
        // new url
    }

    public function malformed()
    {
        // 400
    }

    public function gone()
    {
        // 410
    }


}

这些对我来说看起来不错,我倾向于使用200进行删除,但是如果您在处理删除过程中永远不发回任何实体,那么使用204不会出现任何问题。 关于401 vs 403,它们很棘手,因为它们的命名很差。 401表示“未经授权”,但发送WWW-Authenticate标头的要求向我建议,当请求未经过“认证”时,应确实使用它。 401说:“我不能让你这样做,因为我不满意我对你的了解。另一方面,403表示资源是“禁止的”,只是在这种情况下说“未授权”的另一种方式,我们将尽一切努力使用户获得比以前更好的身份验证。当您需要表达以下信息时,请使用403:“我知道您是谁,我不在乎,我不会让您那样做。”

否则,这些看起来不错,尽管您可能希望根据执行重定向的原因将302、303和307视为其他重定向。 进一步查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ,让我知道您是否需要有关重定向标头的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM