2016-07-31 46 views
0

我構建了一個API,其中客戶端將使服務器更新某個實體。什麼HTTP響應代碼適用於陳舊對象?

例如,客戶端會告訴服務器「更新」建築物的名稱。

爲了處理多個用戶試圖更改相同的實體,每個用戶(客戶端)應該隨其更新請求一起發送實體的版本,因爲它從服務器獲取它。

這樣,如果客戶端1已經在客戶端2之前更新了建築物,則服務器將能夠告訴客戶端2他的更新請求失敗,因爲他嘗試更新的建築物不是最新的。

我的問題是,在這種情況下服務器應該給出的正確響應代碼是什麼?

+0

我的答案能解決問題嗎? – Opal

回答

0

在這種情況下,服務器應回覆412 Precondition Failed狀態碼。

它通常適用於以下標頭(與請求一起發送):

  • 的ETag
  • 的If-Modified-由於
  • 若非-Modified-Since的

服務器檢查上面提到的標頭的值,如果匹配,則允許客戶端修改資源,否則412應該是回。

所以A想編輯CETag等於10。服務器接受該請求,編輯C計算新的ETag例如11併發回資源。現在,如果B想要編輯CETag等於10它將接收412. B應該同步資源C並嘗試再次編輯它。

+0

是409選項嗎?當然是喜歡它。 –

相關問題