[英]REST Web Service: Acceptable HTTP response content-type when responding with status 4XX (Client Error)
[英]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.