2014-01-09 52 views
3

我對ReST API(基於ServiceStack構建)實現DELETE支持,並想知道在DELETE成功後返回什麼響應代碼。爲了響應成功的HTTP DELETE請求,我應該返回410 Gone嗎?

HTTP定義410:

請求的資源不再可用在服務器和沒有轉發地址是已知的。預計這種情況將被視爲永久性的。具有鏈接編輯功能的客戶應在用戶批准後刪除對Request-URI的引用。如果服務器不知道或無法確定該條件是否是永久性的,則應該使用狀態碼404(Not Found)(代替)。除非另有說明,否則此響應可緩存。

現在,如果資源剛剛DELETE d,我可能就需要許多建議申請......但接受的做法似乎返回200 OK在成功DELETE - 特別是因爲4XX範圍應該表示錯誤條件。

除了HTTP規範中的指導原則之外,任何引人注目的參數都是這樣或那樣的嗎?

+0

由於您的DELETE請求全是關於刪除操作,所以您應該回復200,因爲該操作已成功完成。如果有人稍後通過GET請求該資源,他的行動就是獲取資源,然後應該用一些4xx,也許410或404簡單地回答。 – ToBe

回答

8

RFC 2616 Section 9.7特別指出關於用於DELETE響應以下情況:

成功的響應應該是200(OK),如果 響應包括描述狀態, 202(已接受),如果動作具有一個實體尚未執行 頒佈,或204(無內容)如果已採取行動 頒佈但響應不包含實體。