2017-02-18 88 views
0

標準說:在什麼情況下REST API應該返回HTTP狀態503

10.5.4 503服務不可用。由於服務器暫時過載或維護,服務器當前無法處理該請求。這意味着這是暫時的情況,經過一段時間後會緩解。

REF:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

如果服務器具有數據庫的訪問級別的鎖蔣廷黻,應該在這樣的情況下,服務器返回503。或者是503個狀態意味着:

  • 網絡過載
  • DOS類型的情況下
  • 刷爆了負載均衡
  • 明確的維護窗口。

很有道理什麼其他情況下,返回HTTP狀態503

任何詳細的澄清是非常讚賞。

回答

0

假設服務遇到數據庫爭用。對於服務器必須做什麼沒有規定。但是,如果您認爲問題是暫時的,並且一段時間後會解決,您可以選擇退還503。您可以指定Retry-After標題來通知主叫方何時可以重試。這對於允許調用者自動從問題中恢復尤其有用。您可以將其用於其他一些場景,以及呼叫者可以在指定的時間段後自動重試。

狀態代碼服務2周的目的

  1. 讓來電者知道發生了什麼
  2. 讓來電者知道他可以做下一個

發送的主叫方503重發後提供更多的選擇給調用者比發送500.當然,調用者可以完全忽略Retry-After,並將其視爲500,但作爲服務提供者你提供更多的信息和選項。

0

The updated spec,僅供參考。

如果服務器具有數據庫的訪問級別的鎖蔣廷黻,應該在這種情況下

服務器返回503請記住,在REST模式HTTP狀態代碼是不是說明您的服務存在問題;他們改爲在文檔存儲中描述類似的條件。

503是文檔商店說「我太忙了,以後再試。」的方式。

很有道理什麼其他情況下,返回HTTP狀態503

背壓。從Martin Thompson

應用背壓是具有持續高負荷,從而最大吞吐量可以在不降低系統性能的已被接受的要求和交易交付應對一個有效的方法。

當我們需要支持像REST同步協議,然後用反壓,我們完全進入隊列信號在網關,發送一個有意義的「服務器忙」的消息,如HTTP 503狀態碼

相關問題