我正在编写一个控制器助手,为我的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