并發(fā)控制

2018-02-24 15:53 更新

并發(fā)控制

不嚴(yán)謹(jǐn)?shù)膶?shí)現(xiàn),或者缺少并發(fā)控制的?PUT?和?PATCH?請(qǐng)求可能導(dǎo)致 “更新丟失”。這個(gè)時(shí)候可以使用Last-Modified?和/或?ETag?頭來實(shí)現(xiàn)條件請(qǐng)求,支持樂觀并發(fā)控制。

下文只考慮使用?PUT?和?PATCH?方法更新資源的情況。

  • 客戶端發(fā)起的請(qǐng)求如果沒有包含?If-Unmodified-Since?或者?If-Match?頭,那就返回狀態(tài)碼?403 Forbidden?,在響應(yīng)正文中解釋為何返回該狀態(tài)碼
  • 客戶端發(fā)起的請(qǐng)求提供的?If-Unmodified-Since?或者?If-Match?頭與服務(wù)器記錄的實(shí)際修改時(shí)間或?ETag?值不匹配的時(shí)候,返回狀態(tài)碼?412 Precondition Failed
  • 客戶端發(fā)起的請(qǐng)求提供的?If-Unmodified-Since?或者?If-Match?頭與服務(wù)器記錄的實(shí)際修改時(shí)間或?ETag?的歷史值匹配,但資源已經(jīng)被修改過的時(shí)候,返回狀態(tài)碼?409 Conflict
  • 客戶端發(fā)起的請(qǐng)求提供的條件符合實(shí)際值,那就更新資源,響應(yīng)?200 OK?或者?204 No Content?,并且包含更新過的?Last-Modified?和/或?ETag?頭,同時(shí)包含?Content-Location?頭,其值為更新后的資源 URI

相關(guān)資料:

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)