簡體   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