我正在編寫一個控制器助手,爲我的REST控制器操作設置正確的響應標頭。它被粘貼到下面,並且應該被簡化爲讓那些不熟悉Zend Framework的人理解我在做什麼。這些REST HTTP響應代碼是否正確,以及Content-Type?
我的問題是:這些代碼是否正確,各自的回答是否正確?在「拒絕訪問」的情況下,我是否使用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
}
}
好吧,如果用戶沒有登錄(已驗證),那麼我應該重定向他們到一個登錄頁面。如果他們已經登錄並嘗試訪問他們沒有授權的資源,我應該回應一個403.聽起來不錯? – talentedmrjones 2010-05-12 23:36:05
是的,如果他們還沒有登錄,發送一個401 WWW-Authenticate標頭指向登錄頁面。如果他們登錄了,他們正在做一些你不想讓他們做的事情,那就發送403。 – stinkymatt 2010-05-14 19:51:38