2013-04-23 90 views
3

我正在編寫一項服務,向客戶返回有關另一個請求的數據(例如,從bitly或t.co地址中檢索未縮短的URL)。在大多數情況下,我可以返回一個狀態碼來鏡像我從服務器收到的代碼,但是當我的服務無法連接到所請求的URL時(例如,如果它不存在),什麼狀態碼最適合?我在想400 Bad Request408 Request Timeout,但這裏有最佳做法嗎?我應該爲連接錯誤返回什麼狀態代碼?

回答

22

503 Service Unavailable似乎是一個合適的選擇。 4xx代碼旨在表明客戶做錯了什麼。在你指定的情況下,這是一個服務錯誤。

+0

我的推理是* my *服務運行正常,但客戶端試圖通過它請求一個不存在的URL,這使我感到客戶端錯誤。 – Problematic 2013-04-23 03:29:36

+1

你怎麼知道它是不存在的,或者它沒有響應,或者如果互聯網連接斷開,或者路由表是不可靠的?當網絡崩潰時,我經常從公司代理處得到'50x'錯誤。 「服務不可用」是不可知的 - 它不知道它是否被錯誤地輸入,或者遠程服務中是否存在實際的缺陷。這只是「不可用」。 – PaulProgrammer 2013-04-23 03:31:16

相關問題